我使用Components |导入了Acrobat Reader导入组件。 AcroPdf_TLB单元在Imports目录中创建。
当我尝试使用AcrobatReader组件时,如下所示......
AcroDoc := TAcroPDF.Create(nil);
...我得到一个'未指定的错误'异常(EOleSysError)。有什么想法吗?
谢谢,彼得。
答案 0 :(得分:1)
如果你对你到达那里的结果不满意(我曾经),你可以考虑试试QuickPDF。价格并非不合理,它们包含许多优秀的PDF函数,您可以通过调用RenderPageToStream在TImage控件中准确显示PDF。我发现使用表单字段的一件事是我必须在渲染之前使用他们的FlattenFormField来获取表单字段内容以包含在渲染图像中。
跟进:
我最初没有提到QuickPDF也适用于打印。对于表单字段,您必须执行相同的FlattenFormField例程,但结果看起来很好,而且比依赖Acrobat Reader的开销要少得多。
答案 1 :(得分:0)
将组件放在TForm上,然后它可能有效。
答案 2 :(得分:0)
Acrobat ActiveX / COM对象因不能正确支持旧版本的接口而臭名昭着。你得到EOleSysError到处都是。
我个人为几个客户做过的事情是将PDF文档加载到TWebBrowser。
TWebBrowser是Internet Explorer用于显示所有内容的ActiveX / COM组件的包装。
Adobe非常擅长使用每个Acrobat更新,因此TWebBrowser也能正常工作。
请注意,这仅适用于显示PDF文档。
- 的Jeroen
答案 3 :(得分:0)
我们使用Adobe Reader插件并经常遇到此问题。用户在Adobe Reader上执行Web更新后,尤其是表面。
尝试取消安装(通过控制面板),然后重新安装最新的Adobe Reader。
这总是为我们的用户解决了这个问题。
答案 4 :(得分:0)
我们在Delphi 7应用程序中成功使用了acrobat v6阅读器组件,但发现它确实需要acrobat v6。今天只安装acrobat v9的用户在使用我们的应用程序查看pdf时会出错,因为acrobat组件不会以这种方式向后兼容。
所以是的,你可以做到,但未来可能存在问题。
第三方工具最好......