以编程方式生成高质量的PDF

时间:2009-10-12 12:47:02

标签: language-agnostic pdf-generation

注意:我意识到这个问题已经被问到(有一个红宝石倾斜):Creating on-demand, print-quality PDFs (preferably in Ruby if feasible)。但恕我直言,没有像样的答案。

正如您可能已经猜到的那样,我希望找到以编程方式生成高质量,打印就绪PDF文档的最佳方法。我们的要求需要我们能够拥有定义动态内容(如图像和文本)的占位符的设计文档,即某种模板机制。

建议一直使用Adobe的InDesign服务器,但这似乎是一个昂贵的解决方案,更不用说我们的需求有点过分了。

那里有替代品,更便宜和更合适的解决方案吗?解决方案的语言并不重要,只要它可以在Windows机器上执行即可。

7 个答案:

答案 0 :(得分:2)

您可以使用Prince.

将XML 模板转换为PDF
  普林斯是一个计算机程序   将XML和HTML转换为PDF   文档。普林斯可以阅读很多XML   格式,包括XHTML和SVG。   王子根据文件格式化文件   用CSS编写的样式表。

答案 1 :(得分:1)

我的建议是看看XSL-FO或其附近......

您创建了一个描述所需内容的XML文档,并且有各种库和工具包(我使用过RenderX的XEP),它将所述XML转换为PDF。

实际上,我们所做的是采用XML格式的大量数据,使用XSLT - 实际模板 - 将数据转换为XEP呈现的形式对象(500自动生成的TOC和索引的页面酒店目录,至少有三种不同的商业打印机已经非常愉快地使用了它。我们也不时做一些其他较小的文件。

这方面的缺点是它甚至不是远程WYSIWYG解决方案 - 您正在有效地编译“源代码”以获得PDF背面。另一方面,即使特定的工具包可能稍微不那么基本技术也是合理通用的。

答案 2 :(得分:1)

我已经并且也知道很多人在ReportLab上取得了很大成功,这是一个开源的Python PDF库(http://www.reportlab.org/rl_toolkit.html)。

它非常易于使用且非常快速入门。所以值得一试。

答案 3 :(得分:0)

Java语言和JasperReports

答案 4 :(得分:0)

Java:iText

C#:iTextSharp

答案 5 :(得分:0)

取决于您要发布的内容,但请查看Pentaho报告 http://reporting.pentaho.org/

答案 6 :(得分:0)

rinohtype是一个开源文档处理器,能够生成高质量的可打印PDF文档。您可以使用其中一个内置文档模板(书籍,文章)或定义自己的模板。可以通过类似CSS的样式表来配置文档元素的外观。您可以从 reStructuredText CommonMark 文件中解析文档内容,也可以通过编程方式构建文档树。

完全披露:我是rinohtype的作者。