1

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

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

AcroDoc := TAcroPDF.Create(nil);

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

谢谢,彼得。

4

5 回答 5

1

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

跟进:

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

于 2009-09-30T16:22:43.160 回答
0

将组件放在 TForm 上,然后它可能会起作用。

于 2009-09-30T13:09:58.040 回答
0

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

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

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

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

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

——杰伦

于 2009-09-30T16:10:51.320 回答
0

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

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

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

于 2009-10-03T02:45:33.170 回答
0

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

So yes, you can do it, but there are probable issues going forward.

A third party tool is prob best...

于 2009-10-07T04:55:33.937 回答