コンポーネント | を使用して Acrobat Reader をインポートしました。コンポーネントをインポートします。Imports ディレクトリに AcroPdf_TLB ユニットが作成されます。
AcrobatReader コンポーネントを使用しようとすると、次のように...
AcroDoc := TAcroPDF.Create(nil);
... 「Unspecified Error」例外 (EOleSysError) が発生します。何か案は?
ありがとう、ピーター。
得られた結果に満足していない場合 (私はそうでした)、QuickPDFを試してみることを検討してください。価格は不当ではありません。多くの優れた PDF 機能が含まれており、RenderPageToStream を呼び出すことで TImage コントロールに PDF を正確に表示できます。フォーム フィールドを操作してわかったことの 1 つは、レンダリングする前に FlattenFormField を使用して、フォーム フィールドの内容をレンダリングされたイメージに含める必要があることです。
ファローアップ:
QuickPDF が印刷にも使用できることについては、最初は触れませんでした。フォーム フィールドの場合、同じ FlattenFormField ルーチンを実行する必要がありますが、Acrobat Reader に依存するよりもはるかに少ないオーバーヘッドで、結果は良好に見えます。
私たちはAdobeReaderプラグインを使用しており、この問題に頻繁に直面しています。特に、ユーザーがAdobeReaderでWeb更新を実行した後に表示されます。
(コントロールパネルから)アンインストールしてから、最新のAdobeReaderを再インストールしてみてください。
これにより、ユーザーの問題は常に解決されます。
Acrobat ActiveX / COMオブジェクトは、古いバージョンのインターフェイスを適切にサポートしていないことで有名です。EOleSysErrorはいたるところにあります。
私がいくつかのクライアントのために個人的に行ったことは、TWebBrowserにPDFドキュメントをロードすることです。
TWebBrowserは、InternetExplorerがすべてを表示するために使用するActiveX/COMコンポーネントのラッパーです。
Adobeは、Acrobatの各アップデートでそれを機能させるのに非常に優れているため、TWebBrowserも機能します。
これは、PDFドキュメントを表示する場合にのみ意味があることに注意してください。
--jeroen
Delphi7アプリでacrobatv6リーダーコンポーネントを正常に使用しましたが、実際にはacrobatv6が必要であることがわかりました。今日、acrobat v9のみをインストールしているユーザーは、アプリを使用してPDFを表示すると、この方法でacrobatコンポーネントに下位互換性がないため、エラーが発生します。
そうです、あなたはそれを行うことができますが、今後問題が発生する可能性があります。
サードパーティのツールが最適です...
コンポーネントを TForm に配置すると、おそらく動作します。