从结构化数据生成PDF

时间:2020-03-06 14:33:00  来源:igfitidea点击:

我希望能够根据我可能在数据库或者xml或者任何其他结构形式中的数据生成高度图形化(也包含大量文本内容)的PDF文件。

当前,我们的图形设计师在将内容作为MS Word文档获取后,会在Photoshop中手动创建这些PDF文件。但是通常,内容有20多个修订版本。到处都有小变化,拼写更正等。

2个缺点是:
1)不必要地占用了平面设计师的时间。第一个版本是他/她应该从事的唯一工作。
2)PDF文件成为现在具有最终修订内容的文档,而初始内容与此不同步。因此,如果初始内容需要放在其他地方(例如在网站上),则需要从PDF文件重新创建它。

生成PDF文件我解决这两个问题。图形设计师可能以某种方式创建"模板",然后放入标签/支架并将这些标签/支架映射到相关数据。

谢谢 :-)

解决方案

我们可以看一下在PostScript中执行工作流的过程,该工作流是纯文本,可以轻松地由片段组成。然后,我们可以使用任何免费工具将其转换为PDF。

我为此使用ReportLab python库。它也许可以解决问题,但是我们将需要做一些工作。

过去我写过一些脚本,将LaTeX吐出来,然后使用texi2pdf解决了这类问题。

在http://jasperforge.org上查看iReport和JasperReports。
iReport使我们可以设计报告,然后可以用JasperReports库(Java)以编程方式填充它,也可以仅使用iReport手动创建报告。

我仅将其用于表格数据,但我认为其他类型的文档不会有任何问题。

有一些工具可以做到这一点。 XSL-FO很有用。这是一个使用cocoon从xml(或者xhtml)创建pdf的教程。另请参阅Apache FOP。

我们可以将SQL数据格式化为XML,并且仍然可以使用相同的模板。

我们可以使用iText(Java)等pdf库创建表单并以编程方式填充条目。

看一下Prince XML。该工具允许基于XML或者HTML和CSS生成PDF。

一种可能的方法是使用模板引擎,例如FreeMarker或者StringTemplate:它们通常用于生成HTML,但实际上它们足够灵活以输出任何格式。
我想问题是要制作一个PDF模板。也许我们可以获取示例输出并进行编辑,以用占位符替换数据以由模板引擎填充。可能不平凡!

听起来像SQL Server Reporting Services可以轻松完成的工作。
Reporting Services允许我们查询数据,定义布局以及导出为PDF,而无需任何干预。可以通过电子邮件分发PDF输出,将其输出存储在文件共享中,并通过报表服务器上的页面进行访问。
它也可以处理XML数据源。