2009-09-30 70 views
1

我已使用組件導入Acrobat Reader |導入組件。 AcroPdf_TLB單元在Imports目錄中創建。如何將Acrobat Reader導入到Delphi 2007中?

當我嘗試使用的AcrobatReader組件,如下...

AcroDoc := TAcroPDF.Create(nil); 

...我得到一個 '未指定的錯誤' 異常(EOleSysError)。有任何想法嗎?

謝謝,彼得。

+0

在我的開發PC上安裝Acrobat似乎有問題。我重新安裝了Acrobat Reader 9並導入了類型庫。我現在在代碼中動態創建組件並編譯項目。我仍然無法在開發PC上運行它,但它在安裝了Acrobat 9的生產型電腦上運行得非常好。感謝您的所有意見。 – 2009-10-05 07:34:46

回答

0

我們使用Adobe Reader插件並經常遇到這個問題。它在用戶在Adobe Reader上執行Web更新後特別顯現。

嘗試未安裝(通過控制面板),然後重新安裝最新安裝Adobe Reader。

這無一例外地爲我們的用戶清除了這個問題。

+0

請注意,單獨重新安裝並不能解決問題,首先需要完全卸載Reader。 – EagleOfToledo 2009-10-07 01:35:12

0

把組件放在TForm上,然後它可能起作用。

+0

我試過了,但得到相同的錯誤。 – 2009-09-30 13:14:33

+0

如果在代碼中創建它不起作用,那麼在窗體設計器中創建它幾乎*從不*會。 – 2009-09-30 13:16:28

+0

有時組件需要所有者才能工作。 – 2009-09-30 14:09:38

0

Acrobat ActiveX/COM對象因不支持舊版本的接口而臭名昭着。你會得到EOleSysError到處都是。

我個人爲幾個客戶完成的工作是將PDF文檔加載到TWebBrowser

TWebBrowser是Internet Explorer用來顯示一切的ActiveX/COM組件的包裝。

Adob​​e在使用每個Acrobat更新工作時都很出色,因此TWebBrowser也可以工作。

請注意,這僅適用於顯示PDF文檔。

--jeroen

+0

謝謝,這可以用於顯示PDF文檔,但我需要從我們用來將報告分發給客戶端的ReportBroker中無聲打印文檔。 – 2009-10-02 13:10:38

1

如果你不滿意你到達那裏(我)的結果,你可能會考慮給QuickPDF一試。價格並非不合理,它們包含許多很好的PDF功能,您可以通過調用RenderPageToStream在TImage控件中精確顯示PDF。我發現使用表單字段的一件事是,我必須在渲染之前使用它們的FlattenFormField來獲取表單字段內容以包含在渲染圖像中。

跟進:

我原本沒有提到QuickPDF也適用於打印。對於表單字段,您必須執行相同的FlattenFormField例程,但結果看起來不錯,而且比依賴Acrobat Reader的開銷少得多。

+0

QuickPDF可能是要走的路,但資金不到位,所以我不能走這條路。 – 2009-10-05 07:35:58

0

我們在Delphi 7應用程序中成功使用了acrobat v6閱讀器組件,但發現它確實需要acrobat v6。僅安裝acrobat v9的用戶在使用我們的應用查看pdf時會出錯,因爲acrobat組件不以這種方式向後兼容。

所以是的,你可以做到這一點,但有可能的問題前進。

第三方工具是最好的...

相關問題