【问题标题】:How do I get Acrobat Reader Imported into Delphi 2007?如何将 Acrobat Reader 导入 Delphi 2007?
【发布时间】:2014-08-07 06:59:26
【问题描述】:

我已使用组件导入 Acrobat Reader |导入组件。 AcroPdf_TLB 单元在 Imports 目录中创建。

当我尝试使用AcrobatReader组件时,如下...

AcroDoc := TAcroPDF.Create(nil);

...我收到“未指定错误”异常 (EOleSysError)。有什么想法吗?

谢谢,彼得。

【问题讨论】:

  • 我的开发 PC 上的 Acrobat 安装似乎有问题。我重新安装了 Acrobat Reader 9 并导入了类型库。我现在在代码中动态创建组件并编译项目。我仍然无法在开发电脑上运行它,但它在安装了 Acrobat 9 的生产电脑上运行得非常好。感谢所有的cmets。

标签: delphi adobe types libraries acrobat


【解决方案1】:

如果您对获得的结果不满意(我曾经),您可以考虑尝试QuickPDF。价格也不是不合理,它们包含了很多不错的 PDF 功能,您可以通过调用 RenderPageToStream 在 TImage 控件中准确地显示 PDF。我发现使用表单字段的一件事是,我必须在渲染之前使用它们的 FlattenFormField 才能将表单字段内容包含在渲染图像中。

跟进:

我最初并没有提到 QuickPDF 也适用于打印。对于表单字段,您必须执行相同的 FlattenFormField 例程,但结果看起来不错,而且开销比依赖 Acrobat Reader 少得多。

【讨论】:

  • QuickPDF 可能是最好的选择,但资金没有到位,所以我不能走这条路。
【解决方案2】:

我们使用 Adob​​e Reader 插件并经常遇到此问题。它特别是在用户在 Adob​​e Reader 上执行网络更新后出现。

尝试卸载(通过控制面板),然后重新安装最新的 Adob​​e Reader。

这总是为我们的用户解决问题。

【讨论】:

  • 请注意,单独重新安装无法解决问题,需要先完全卸载阅读器。
【解决方案3】:

把组件放在一个TForm上,那么它可能就可以工作了。

【讨论】:

  • 如果在代码中创建它不起作用,在表单设计器中创建它几乎永远不会
【解决方案4】:

Acrobat ActiveX/COM 对象因不能正确支持旧版本的接口而臭名昭著。到处都是EOleSysErrors。

我个人为几个客户所做的是将 PDF 文档加载到 TWebBrowser

TWebBrowser 是 Internet Explorer 用来显示所有内容的 ActiveX/COM 组件的包装器。

Adobe 在每次 Acrobat 更新时都能很好地实现这一点,因此 TWebBrowser 也能正常工作。

请注意,这只对显示 PDF 文档有意义。

--杰罗恩

【讨论】:

  • 谢谢,这确实适用于显示 pdf 文档,但我需要从我们用来向客户分发报告的 ReportBroker 静默打印文档。
【解决方案5】:

我们在 Delphi 7 应用程序中成功使用了 acrobat v6 阅读器组件,但发现它确实需要 acrobat v6。现在只安装 acrobat v9 的用户在使用我们的应用查看 pdf 时会遇到错误,因为 acrobat 组件不能以这种方式向后兼容。

所以是的,你可以做到,但未来可能会出现问题。

最好使用第三方工具...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 2014-09-12
    • 2015-03-05
    相关资源
    最近更新 更多