通常PDFを開くとき、ShellExecuteや、CreateProccess あたりを使って
Acrobat を開かせますが、自分で作ったアプリケーション内に表示させるには、
どうしたらいいのでしょう?
メインフォームは、当然fsMDIFormにしておきます。
IEなんかでも、PDFを表示できますし、なにか方法があるのでしょうけど、
アプローチ方法がわからないので、質問しました。
AcrobatReaderのインストールでも、pdf.ocxがインストールされるので、
使い方はともかく、それを使えばいいのでしょうか?
WebBrowser1 を貼り付けて、
var
Flags, TargetFrameName, PostData, Headers: OleVariant;
wFileName: WideString;
begin
wFileName := 'aaa.pdf';
WebBrowser1.Navigate(wFileName, Flags, TargetFrameName, PostData, Headers);
end;
「ActiveXの取り込み」で「Acrobat Control for ActiveX」を選択。
あとは、ActiveXページのPDFコンポをChildフォームに貼り付けるだけ。
Child.Pdf1.Src := 'PDFファイル名';
なるほど、こういうアプローチもありか!と、目から鱗が落ちた感じがしたのですが、
ShellExecuteと同じくAcrobatが開いてしまいました。
よくよく考えてみれば、Acrobatの設定で 「PDFをブラウザ上で表示」にチェックを入れていませんでした。
また、このチェックを入れても、なぜか表示されずにフリーズ状態になってしまいました。
WinXPSP1+IE6+AcrobatReader6の環境ですが、このあたりにも何か関係があるのかもしれません。
とりあえず、pdf.ocxの研究してみます。
ActiveXを取り込んで、フォームに貼り付けしないで、
動的に生成したら・・・CPU使用率100%で止まった・・・。
var
pdf :TPdf;
begin
pdf := TPdf.Create(Self);
pdf.Parent := Self;
pdf.Align := alClient;
pdf.Src := WideString('D:\tekitou\aaa.pdf');
end;
同じくコンポーネントをインストールしてフォームに貼り付けたけど、
srcを設定した時点で同じようにCPU使用率100%達成のまま固まった。
WinXPSP+ScrobatReader6が悪いのか?
http://support.adobe.co.jp/faq/qadoc/spitz.nsf/a2eb70004ad8915849256d49000a66c5/f8e63b98a96bae9a49256e14002b8daf?OpenDocument
のAcrobat Developer FAQ によると・・・
> Adobe Reader を使用して独自のアプリケーションウィンドウに PDF を表示する
> Adobe Reader Integration Key License Agreement の制約により、PDF ファイルを外部ウィンド
> ウに表示するプラグインを作成することはできません。
> アドビでは、Acrobat および Adobe Reader に付属している Acrobat ActiveX(OCX)コンポーネ
> ントを使用した開発はサポートしておらず、ライセンスもしていません。このコンポーネントの
> 目的は、Internet Explorer との統合にあります。Acrobat の ActiveX(OCX)開発に関する資料も
> 用意されていません。
ということで、pdf.ocxはIEで表示させるためだけのものであり、それ以外の利用は認めてないということらしいです。
また、どうしても表示させたいなら、AcrobatSDKを入手(有償)して、開発しなさいということらしいです。
ん〜、残念。
これでは、解決してないけど、終了ですね。
インストールされているAcrobat Readerのバージョンは?
Acrobat Reader7.0では表示用のActiveXコントロールが別の物(別名)になっているらしいですね。TPDFだったのが TAcroPDFに。
> インストールされているAcrobat Readerのバージョンは?
三つほど上のレスで
> WinXPSP+ScrobatReader6が悪いのか?
と、見事に書き損じているように、
WinXP SP1 + Acrobat Reader 6.0 です。
あと、自分だけで使うのでなく、配布しないといけないので、
Acrobat Reader 7.0 という固定の環境にするわけにはいきません。
レスありがとうございました。
ツイート | ![]() |