如何让FastReport生成可在iOS上查看的PDF?

时间:2013-05-07 11:29:51

标签: delphi pdf delphi-xe3 fastreport

我正在使用FastReports,并且在iOS上无法正确读取生成的PDF。因为iOS读取PDF / A,FastReports不支持。这显然是FastReports 4.0中的一个已知错误,它将在FastReports 5.0中修复。然而,5.0还有很长的路要走,并且至今已经开发了多年。

所以我的简单解决方案 - 我更喜欢一个简单的解决方案,所以我可以在FastReports 5.0出来后再次删除它 - 现在只需将现有PDF打印到另一个PDF。这可以在没有在系统上安装PDF打印机的情况下完成,只需使用Delphi吗?

如果没有,是否有转换器接受PDF文件并输出PDF文件?

7 个答案:

答案 0 :(得分:5)

尝试使用SynPDF。它是开源的,其结果很好,同时将文件大小管理到一个非常可接受的水平。它生成PDF / A文档。

可以在以下位置找到快速报告导出单元:

http://synopse.info/forum/viewtopic.php?id=781

答案 1 :(得分:2)

我发现了我的问题。解决方案是在PDF中启用嵌入字体,因为我使用的是Tahoma和Arial,这两种字体在iOS上都不是 。我假设我最初禁用了此功能,以保存文件大小。

但我意识到我很乐意发送一个大文件,甚至是iOS设备。所以嵌入字体对我来说就是解决方案。

但我想提一下 yms 的另一个答案,建议使用Helvetica(看作Tahoma和Arial是无衬线字体),因为这在大多数平台上都可用,包括iOS。或者 - 也许正如我从描述中收集的那样 - PDF引擎的一部分而不是平台上的内容。

然而,尽管如此,我仍然认为为了确保PDF真正可移植(P in PDF),人们应该嵌入所有字体,无论其可用性如何。因为 - 谁知道? - 您可能有一些用户没有PDF阅读器。哦,它只计算'简单字体',而不是CID字体。必须嵌入CID字体。

事实上;据我所知,Arial是PDF规范中Helvetica的别名,所以它会加载Helvetica;但它没有用,因为它是一个CID字体。

答案 2 :(得分:1)

创建PDF在技术上是编辑新的空PDFl。最简单的解决方案是“查看PDF” - 将它们呈现给TBitmap - 然后将其复制到新的PDF TCanvas上。但这会杀死所有的矢量信息...所以可能是虚拟负载 - >假装编辑 - >保存到新文件就可以了吗

https://stackoverflow.com/search?q=%5Bdelphi%5D+PDF+edit - 为Delphi讨论了大量的PDF库,您可以下载它们并一个接一个地尝试,检查不同的库如何适应您使用的文档的类型和功能范围。

我没有将此问题标记为重复,因为我不知道哪一个最匹配。

答案 3 :(得分:1)

Delphi和大多数高级语言允许运行subprocesses。您可以使用它来生成和控制ghostscript。我已经成功地使用它来阅读并将pdf从各种专有和破碎的格式转换为正确构造的较小的pdf。有很多选项,因此您需要使用它来正确设置。

答案 4 :(得分:0)

我没有亲自试过,但Gnostice eDocEngine应该做你想做的事。

http://www.gnostice.com/edocengine_vcl.asp

  

eDocEngine可以在剪贴板中创建文档, PDF ,RTF,HTML,XHTML,   EXCEL,TEXT,CSV,Quattro Pro,LOTUS 1-2-3,DIF,SYLK,TIFF,PNG,SVG   (基于XML的矢量图形),JPEG,GIF,BMP,EMF和WMF格式。   eDocEngine附带了即用型Report-Export接口   与流行的Delphi报告工具紧密集成,如   ReportBuilder, FastReport ,Rave,QuickReport和Ace Reporter。

答案 5 :(得分:0)

我在大约12个月之前处于类似情况并最终购买了llpdflib(http://www.llion.net/llpdflib.php)因为我不能再等待快速报告VCL 5.它一直在很好地制作PDF / A和很多较小尺寸的PDF。

答案 6 :(得分:0)

这是一个老帖子,但我们遇到同样的问题。我们使用http://www.wptools.de/中的组件解决了它。来自wpdf工具的一个小dll为windows,ios和android生成完美的pdf。文件显示字体正确且不是很大。