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

Fab*_*mes 6 pdf delphi pdf-generation cross-platform fastreport

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

Fast Report告知他们的pdf实现仅支持Windows,他们无法说明他们正在开发的新实现何时可用.

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

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


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


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

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

在此输入图像描述

在Windows上:

在此输入图像描述

Cos*_*und 8

Fast Report告知他们的pdf实现仅支持Windows,他们无法说明他们正在开发的新实现何时可用.

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

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

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

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


编辑:此处(链接)是我的快速报告应用程序生成的示例PDF文档.我不知道你生成了什么类型的文档,但在我的书中,这是一个强大的复杂文档.注意从表数据结束处开始的对角线,注意嵌入的图像(条形码,图章,签名).

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

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

关于PDF格式:如果文档符合标准,则文档为"PDF",这里有一些维基百科信息.理论上,PDF文档应该以任何方式呈现完全相同的方式,但是有些力量可能会对此产生影响:

  • 并非所有读者都是"Adobe Acrobat".理论上它们都是兼容的,在实践中它们最不兼容100%.
  • 不嵌入字体的PDF取决于主机系统上可用的字体.如果它们不是完全相同的字体,则前面有麻烦,因为它们的大小可能略有不同.由于我们谈论的是在Windows上生成并在iOS或Android上打开的PDF,这些显然是不同的平台,并且它们保证使用不同的字体(因为字体是许可的,我怀疑微软会将它的字体授权给Apple.我也怀疑Apple会想要Microsoft字体).一种可能的解决方案是嵌入字体,但这会使您的PDF文件显着增大.

  • 对于字体的跨平台问题,最好只使用[标准PDF字体](http://en.wikipedia.org/wiki/Portable_Document_Format#Standard_Type_1_Fonts_.28Standard_14_Fonts.29),这些可能在任何地方都可以使用. (3认同)

Arn*_*hez 5

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

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

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

例如,请参阅如何将其用于QuickReport.快速报告应使用类似的技术.

  • @Leonardo Herrera - 我刚刚在SynPDF论坛上发布了该单元,http://synopse.info/forum/viewtopic.php?pid = 4763#p4763 (2认同)

Fab*_*mes 4

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

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

此外,以编程方式导出报告也需要 2 行代码,并且可以在常见问题解答中轻松找到该信息。

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

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

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