合并/合并1000个SVG以创建可打印的PDF

时间:2014-01-13 04:52:31

标签: php pdf svg mailmerge

我需要每季度生成大约100,000张账单。目前我有一个模板SVG文件,我在其中找到&替换PHP中的文本以生成新文件。这给了我想要的结果,但我也必须以PDF格式发送这些文件进行打印。因此,在转换为SVG后,我必须再次将所有文件转换为PDF格式。然后使用pdftk将它们合并为每页1000页的PDF。

理想情况是通过文本搜索直接生成PDF。在一个模板pdf文件中替换(以避免从头开始创建每个文件的开销)但我不知道如何做到这一点,因为PDF中的文本是编码的&我也找不到一种在没有字体嵌入的情况下创建PDF的方法,它会不必要地增加文件大小。

或者,如果我可以将SVG直接连接到一个大的PDF文件(1000个SVG的组合)而不首先将它们中的每一个转换为PDF,那也可以。

请注意,所有文本字段都根据其在帐单格式上的相应位置进行对齐。因此,所有转换/合并都应该是准确的。文字不应该移动。

所有操作都在无头的linux服务器上进行,请CLI。

请帮助。

2 个答案:

答案 0 :(得分:0)

SVG是单页文档格式。因此,无法创建可以转换为多页PDF的多页SVG。如果这就是你的意思。

您尝试做的通常称为“邮件合并”。如果你谷歌“邮件合并PDF”你会得到很多可能的解决方案。最适合您的将取决于您的操作系统和数据库。

答案 1 :(得分:0)

根据您对此卷所需的确切功能(我假设每个季度一次性使用量为100,000)我建议使用报表编写器工具。这可以使用随开发环境提供的工具(如Oracle Developer或其他工具)来完成。

我经常使用 JasperReports / iReports ,这是一个免费的产品,每卷超过10K页。在Servlet引擎上运行或使用命令行中的'java'分开。即使使用其他加载项,在Word中生成10K或更多页面也太麻烦了。作为页面描述工具,位置不会移动,您也可以包含条形码或特殊字体的付款说明。我们将LGPL版的iReports用于我们的项目管理软件,报告示例请参阅http://www.invantive.com/en/demo/web/bubs_pjt_all.html,然后单击管理 - >审核an output sample。在我们的软件中,我们添加了一些类以使其更好地运行,并且还需要添加调度程序以重复生成输出(如发票)并分发它们。它本身不包括调度程序。

它还支持其他输出格式,如Excel,PowerPoint,XML,OpenOffice等。您可以自己添加更多渲染选项。它可以从大多数关系数据源以及各种面向对象的格式提供。

运行时间各不相同,但如果设计正确,则每秒10-100页是可行的。

替换PDF是我认为糟糕的计划; PDF的设计并未考虑编辑。尽管有可能。如果要以打印格式替换,还可以考虑使用PostScript和脚本替换占位符。