3 返信 最新の回答 日時: Oct 22, 2017 5:01 PM ユーザー:TkJapan

    ActiveXでPDF内のリンクが動作しません

    TkJapan Level 1

      Adobeさんが提供しているActiveXをEXEに貼り付けて、PDFを表示しています。

      表示は特に問題なく動作しています。

      しかし、同じフォルダの同じPDFでも、

      Readerで表示した時とActiveX上で動作が異なる状況があり、

      対応策を探しています。

       

      現象は、PDFから同一フォルダ内の他のPDFへのリンク動作です。

      ・ActiveX

       カーソルが指カーソルに変更されますが、実際に移動しません。

      ・Reader

       カーソルが指カーソルに変更されて、移動し、新しいPDFが表示される。

       

      以上、よろしくお願いお願いします。

        • 1. Re: ActiveXでPDF内のリンクが動作しません
          Omachi Most Valuable Participant

          はじめに、私はAcrobat ActiveXを使ったことがありません。

          Acrobat DC SDK Documentation

          および、親切な方が公開されているサイト

          http://pdf-file.nnn2.com/

          を読んだだけで話をしています。もし、理解不足があったり意思疎通ができないと

          感じられた場合はUSのAcrobat SDKのフォーラムを検索、またはそちらに

          投稿されることをお勧めします。

          https://forums.adobe.com/community/acrobat/acrobat_sdk

           

          まず初めに思ったのが、ユーザーに新しいドキュメントを表示させるって、

          それは呼び出し元のアプリケーションの管理下から外れるんじゃないの?

          ということです。

          上記のサイトを見ていても、イベントの取得はないようなので、

          元のアプリケーションが知らない間に新しいドキュメントが表示されていては、

          その後のドキュメントの操作ができないので、処理が破綻します。

          そのため、新しいドキュメントが開かれた時点で、元のアプリケーション側に

          変更の伝達がなければいけません。ということでイベントが必要なはずですが

          見当たりません。

          ただ、現在の状況を取得することはできるので、監視することは可能のようですが

          コンマ何秒おきにドキュメントの数とファイル名を取得しに行くのかというと

          これも大変なことです。

          そのため「ユーザーが勝手にドキュメントを開くのを禁止する」仕様になっているのでは

          ないかと思いました。

          ちなみにAcrobat ActiveXを使った場合に、メニューから別のドキュメントを開くことが

          できるのでしょうか。できるのであれば私の推測は間違っています。

          (おそらくブラウザ上でPDFを開くときのように、表示状態の変更や印刷などに

          制限されているのでは、と思っています)

           

          以上のことを前提に、ユーザーに自由にドキュメントを開かせて良いのかどうなのか、

          というプログラムの設計の問題を精査しなければならないかもしれません。

          プログラム側ではPDFファイルを開くだけで、あとはユーザーの好きにしていいよ、

          というのであればActiveXを使う必要はありません。シェル経由でPDFファイルを

          開けばよいだけですから。

          逆に、PDFを開いた後も、その状態を元のアプリケーションからコントロールする

          必要がある、ということであれば、ActiveXを使う状況だと思いますが、

          それでは勝手に新しいドキュメントを開いてもらっては困りますね。

           

          その中間、だとActiveXの手には負えない気がします。PDFビューアを自作して

          その中でコントロールするしかないんじゃないでしょうか。もしかしたら

          PDFビューアを作成しているメーカーを当たれば何かあるかも知れません。

          • 2. Re: ActiveXでPDF内のリンクが動作しません
            TkJapan Level 1

            回答(助言)ありがとうございます。

            ActiveXの仕様としては、PDF Viewer内の状況を確認できるAPIは用意されていません。

            イベント等も存在しません。

            ユーザーが新しいファイルを開く機能もありません。

            omachiさんがおっしゃられているように、仕様的に制御されている可能性を感じています。

            ただ、エラーメッセージ等が表示されないので、仕様かどうか判断しかねている状況です。

            仕様的に明記されていることも探せていません。

            また、サードパーティのメーカーには当たってみています。

             

            調査継続中で、引き続きよろしくお願いします。

            • 3. Re: ActiveXでPDF内のリンクが動作しません
              TkJapan Level 1

              サードパーティー版は、リンクのクリックイベントをフックできるので、そのイベントで処理を行えば、リンクが動作することが確認できました。

              この方法は、Acrobat ActiveXでは、イベントはないので対応できません。

              以上、報告です。