任何适用于快速报告的好的PDF导出过滤器?

时间:2011-07-27 13:08:59

标签: delphi pdf pdf-generation cross-platform fastreport

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

快速报告告知他们的pdf实施仅支持Windows,他们无法说明他们正在进行的新实施何时可用。

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

如果您知道或使用适用于快速报告的PDF导出过滤器,请告知我们。


2015年11月:快速报告现在有PDF / A支持,启用此选项后,所有平台上的PDF都可以使用。


2014年10月 - 快速报告5似乎仍然会生成“仅限Windows” PDF。考虑到Fast Report是与Delphi捆绑在一起的报表生成器,针对此问题的生产就绪解决方案将为跨平台开发人员带来好处。

以下是使用快速报告5演示生成的新示例,在Android 4.4上使用Adobe Reader 11显示:

enter image description here

在Windows上:

enter image description here

6 个答案:

答案 0 :(得分:8)

  

快速报告告知他们的pdf实施仅支持Windows,他们无法说明他们正在进行的新实施何时可用。

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

根据我的经验,这就是让我遇到麻烦的原因:

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

还要确保在任何给定平台上使用ADOBE Reader进行测试。如果它适用于Adobe阅读器但不能与其他阅读器一起使用,则第三方阅读器可能存在错误!


编辑Here (link) is由我的快速报告应用程序生成的示例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。我也怀疑Apple会想要Microsoft字体)。一种可能的解决方案是嵌入字体,但这会使您的PDF文件显着增大。

答案 1 :(得分:5)

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

然后,您可以使用我们的Open Source SynPDF library将这些图元文件渲染为PDF。它适用于Delphi 5到XE,支持Unicode,可以嵌入真实字体,甚至可以创建PDF / A文件。

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

例如参见how it can be used for QuickReport。快速报告应使用类似的技术。

答案 2 :(得分:4)

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

我工作的公司已经给我买了许可证,我已经更换了快速报告导出过滤器,这个任务就像在frxReport对象的同一个窗体上放置2个组件并设置2或3个属性一样简单。

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

最后,根据建议,在寻找其他选项以寻找多年没有任何更新的废弃组件后,Gnostice eDocEngine是最佳解决方案。

希望他们让他们的安装程序更加“程序员友好”,好像它曾抱怨在搜索路径中缺少Fast Report的单元我至少可以知道发生了什么,而不只是得到一个错误,并指责他们有一个无效的试用安装程序。

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

答案 5 :(得分:-1)

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