Delphi PDF生成

12
我们正在使用Fast Reports创建报告,但是我们对其创建的PDF质量不太满意。我知道我们可以插入其他PDF组件来替代FastReports提供的组件,所以我的问题是:
有哪些好的PDF组件(免费或商业)适用于Delphi?最好不需要任何DLL。
编辑:最终我购买了Gnostice,因为它与FastReports集成,提供源代码并且声誉相当不错。然而,我发现一个问题(在购买后),即从FastReports导出多页报告到PDF时,该组件会泄漏内存并损坏输出。我已向Gnostice报告了此问题,所以我们将看到他们在接下来几天内的支持如何...
编辑2:Gnostice回复并提供了修复程序,纠正了内存泄漏和损坏的输出。
8个回答

8
请使用我们的SynPDF单元。它具有以下功能:您可以使用真正的TCanvas创建PDF,并嵌入True Type字体子集。它是为数不多的处理阿拉伯语言(通过UniScribe API)的库之一。它完全支持Unicode,速度非常快。
而且它是免费和开源的!适用于Delphi 6到Delphi XE。 http://blog.synopse.info/?q=pdf

1
我们的论坛上有一篇关于FastReport支持的帖子。SynPDF的最新1.18版本允许生成大量内容。我已经测试过它可以处理超过200,000页的文本或图像 - 速度相当快,内存使用率低。 - Arnaud Bouchez
刚刚试玩了一下,这是一个非常好的免费解决方案! - Alasdair Stark
该库仍在不断发展。64位支持,XE6支持,增强的元文件渲染,加密,更小的PDF大小... - Arnaud Bouchez

5
我们正在使用Gnostice并且非常满意。它允许我们将ReportBuilder报告打印成PDF、HTML、XML、Excel、Gif等格式。
一些我们在使用该组件时遇到的小问题:
  1. 在组件的深处,会调用Application.Processmessages。您必须确保您的代码处理重入。
  2. 我们不得不将TgtDocSettings组件的Preferences.UseImagesAsResources设置为True,以解决除PDF以外的其他打印方式时出现的AV错误。
  3. 可能是由于我们使用该组件的方式,但第一页始终是纵向打印。我们不得不调用gtRBExportInterface.Engine.Settings.Page.Orientation来设置方向为横向(如果需要)。

2

PowerPDF是一款免费的开源软件(LGPL)。它非常小巧但功能强大!

PowerPDF


1
根据上面的链接,PowerPDF已经过时。 - Steve

2
我们使用 wPDF。但我们不直接生成pdf文件,而是生成不同的报告,然后将它们“打印”成pdf文件作为打印机的替代品。

1

以下是我在寻找类似工具时发现的一些(全部商业):

不幸的是,我发现免费提供的LibHaru和PoDoFo并不符合我的要求。


1

我一直在使用wPDF与QuickReports / QRDesign。基本上是通过将报表转换为元文件,然后从中生成pdf。它还声称支持Fast Report。


0

IIPDFLib由llionsoft开发,网址为:www.llion.net

Delphi库llPDFLib 3.6

llPDFLib是一个纯Object Pascal库,用于创建PDF文档。该库不使用任何DLL或外部第三方软件来生成PDF文件。该库包括TPDFDocument组件,具有类似于Delphi的TPrinter的属性和方法,但设计用于生成PDF文件。

特点:

  • 真正的Canvas.Handle (HDC)
  • Unicode支持
  • Acroforms(按钮,单选按钮,复选框,组合框,文本输入字段)
  • 水印
  • 缩略图
  • JavaScript
  • vEncryption(40位和128位)
  • 大纲(支持俄语,土耳其语,波罗的海语,东欧语言,希腊语,CJK语言)
  • 压缩
  • 图像压缩(Jpeg,Flate,CCITT 3,CCITT 3(2D),CCITT 4)
  • 超链接
  • 注释(支持俄语,土耳其语,波罗的海语,东欧语言,希腊语,CJK语言)
  • 嵌入True Type字体(TTF和TTC)
  • 模拟下划线和删除线字体样式
  • 将输出呈现为流以便与CGI / ISAPI应用程序一起使用
  • QReport,FastReport和Report Builder的过滤器。
  • 一组用于与DBGrids一起工作的组件
  • True Type字体子集

它的价格是299美元,但你会得到物有所值。

alt text
(来源:llion.net


1
我们已经购买了许可证,但技术支持却不理睬我们。 - Pavel

0

使用eDocEngine创建PDF报告有两种方法。一种是使用报告生成器组件(如QuickReport、Rave等),然后使用eDocEngine接口将内容保存为PDF。

另一种方法是编程使用TgtPDFDocument类,然后设置其属性和集合。这可以更精细地控制水印、权限、密码安全等功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接