6

我最近发现由 Fast Report 的 PDF 导出过滤器导出的 PDF 在 Mac OSX、iOS 和 Android 设备中无法正确显示。

Fast Report 告知他们的 pdf 实现仅支持 Windows,并且他们不能说他们正在开发的新实现何时可用。

我也尝试使用 Gnostice 导出过滤器,但是他们的演示安装程序在 Delphi XE 中不起作用,当我联系他们时,他们花了 15 天时间给我发送了一些也不起作用的附加 dcus。所以我正在寻找另一种选择。

如果您知道或使用适用于 Fast Report 的 PDF 导出过滤器,请告诉我。


2015 年 11 月:Fast Report 现在支持 PDF/A,启用此选项后,PDF 在所有平台上都可以正常工作。


2014 年 10 月 - Fast Report 5 似乎仍然生成“仅限 Windows”的PDF。鉴于 Fast Report 是与 Delphi 捆绑在一起的报告生成器,针对此问题的生产就绪解决方案将有利于跨平台开发人员。

这是一个使用 Fast Report 5 演示生成的新示例,在 Android 4.4 上使用 Adob​​e Reader 11 显示:

在此处输入图像描述

在 Windows 上:

在此处输入图像描述

4

6 回答 6

8

Fast Report 告知他们的 pdf 实现仅支持 Windows,并且他们不能说他们正在开发的新实现何时可用。

我不确定应该从字面上理解,考虑到 PDF 应该是一种跨平台格式。这更有可能意味着他们实际上没有时间、设备或专业知识来测试这些平台。我使用的 PDF 导出过滤器是 Fast Report 中内置的过滤器!它肯定有一些错误,但我设法解决了它们。而且我认为这也可能对你有用:从一个可以正确导出的简单文档开始,开始添加功能直到它停止,然后你知道是什么停止了它,你就会知道如何解决这个问题。

根据我的经验,这就是让我陷入困境的原因:

  • PDF 文档中的圆角与快速报告预览中的圆角不同。我的修复:找到了使导出的 PDF 看起来与预览文档完全相同的设置组合。对我来说,圆角只是一种装饰功能,而化妆品没有“一目了然”;替代方案工作得很好。这实际上可能在最新版本中已修复,但我没有费心更改要测试的文档。
  • 透明度问题和大纲问题。使用快速报告编辑器(以及查看它的预览)时,很容易重叠对象。由于对象不透明度,您看不到这一点。当导出到 PDF 时,重叠的对象以某种方式设法“打印”了轮廓,它显然看起来很丑。我的解决方法:密切关注这些对象,确保它们不重叠,或者如果不应该看到轮廓,确保它们不会生成轮廓。

还要确保在任何给定平台上使用 ADOBE Reader 进行测试。如果它适用于 Adob​​e 阅读器,但不适用于其他阅读器,则可能是第 3 方阅读器中存在错误!


编辑这里(链接)是我的快速报告应用程序生成的示例 PDF 文档。我不知道你会生成什么样的文档,但在我的书中,这是一个非常复杂的文档。注意从表格数据结束处开始的对角线,注意嵌入的图像(条形码、印章、签名)。

我在以下移动设备上打开了该文档:

  • iPad,运行 iOS:文档呈现 90% 正常。图像根本不呈现,但它们对我的文档并不重要(这很可能是 iOS 阅读器的问题)。所有花哨的彩色线条和圆角都被正确渲染。一些文本没有正确呈现,我很确定它没有呈现,因为包含它的“框”对于内容来说太小了。这很可能是因为我没有将 TTF 字体嵌入到 PDF 中,并且 iOS 上的 Apple 字体与 Windows 上使用的 Microsoft 字体不完全匹配。
  • 三星 Galaxy S2,运行 Android 2.3:文档呈现 100% 正确。
  • Samsung Something(??),运行 Windows Mobile 6.5 和 FoxReader:文档完全是胡言乱语:出现了图片,但字母之间的间距被弄得乱七八糟,无法阅读。我责怪读者,它不是 Acrobat,它可能想要“聪明”。它在我的文本编码中打破了它的牙齿,因为我的文本不是英文的。

关于 PDF 格式:如果文档符合标准,那么它就是“PDF”,这里有一些Wikipedia信息。从理论上讲,PDF 文档的呈现方式应该与您查看它的方式完全相同,但是有一些力量可能会对此产生不利影响:

  • 并非所有读者都是“Adobe Acrobat”。理论上它们都是兼容的,实际上它们很可能不是 100% 兼容的。
  • 不嵌入字体的 PDF 取决于主机系统上可用的字体。如果它们不是完全相同的字体,就会有麻烦,因为它们的大小可能略有不同。由于我们谈论的是在 Windows 上生成并在 iOS 或 Android 上打开的 PDF,这些显然是不同的平台,并且它们保证使用不同的字体(因为字体已获得许可,我怀疑微软会将其字体许可给 Apple。我也怀疑苹果会想要微软字体)。一种可能的解决方案是嵌入字体,但这会使您的 PDF 文件显着变大。
于 2011-07-27T14:01:57.633 回答
5

AFAIK 您可以将快速报告页面导出为元文件(即矢量 Windows 格式,实际上是 GDI 命令的原始序列化)。

然后,您可以使用我们的开源 SynPDF 库将这些元文件呈现为 PDF 。它适用于从 Delphi 5 到 XE,支持 Unicode,可以嵌入真字体,甚至可以创建 PDF/A 文件。

它还能够将报告中包含的元文件导出为矢量图片(而不是位图),因此可以大大提高 pdf 质量,同时缩小其大小。

例如,看看它如何用于 QuickReport。快速报告应使用类似的技术。

于 2011-07-27T13:30:29.870 回答
4

Gnostice 支持人员回复了我的电子邮件,我报告说他们的试用安装程序无法正常工作,并向我发送了一些提示,说明哪些可能是问题所在,我能够安装它。

我工作的公司已经为我购买了许可证,并且我已经更换了快速报告导出过滤器,这是一项简单的任务,只需将 2 个组件放在与 frxReport 对象相同的表单上并设置 2 或 3 个属性。

此外,以编程方式导出报告也需要 2 行代码,这些信息很容易在他们的常见问题解答中找到。

最后,基于推荐和寻找其他选项只是为了找到多年来没有任何更新的废弃组件,Gnostice eDocEngine 是最好的解决方案。

只是希望他们让他们的安装程序更加“程序员友好”,就好像它抱怨在搜索路径中缺少快速报告的单元一样,我至少能够知道发生了什么,而不仅仅是收到错误并指责他们有一个不起作用的试用安装程序。

替换过滤器并使用 eDocEngine 组件生成 PDF 后,PDF 现在在 iOS、OSX 和 Android 中的工作方式相同。

于 2011-08-01T20:05:49.017 回答
0

这是我的解决方法。这不是一个通用的,但在我的情况下帮助了我。主要思想:在文件大小较小的报告字体中使用(我发现类似 Arial 的字体,西里尔字符集大小为 57kb)。所以导出的文件可以是 100-200 kb。详细信息在这里: http ://dev-doc.blogspot.com/2013/03/fastreport-4-font-reading-and-huge-file.html

于 2013-03-26T13:32:36.760 回答
0

我使用来自 WPcubed 组件的 wPDF,它真的是一个很棒的产品,物有所值

于 2014-09-10T09:45:16.257 回答
-1

您始终可以安装其中一台 PDF 打印机。这些实际上是作为 Windows 打印机安装的 PDF 转换器。它们适用于任何应用程序,包括 FastReprt 组件 - 只需在它们上打印即可。

于 2011-07-27T14:45:40.203 回答