我正在做基于模板的pdf文件的批量生成,我遇到了很大的性能问题。 我目前的情况如下:基于PHP的使用pdftk的基于批量模板的pdf生成
- 获取数据从数据库
- 基于单一的数据行和PDF格式
- 写
.fdf
文件保存到磁盘 - 创建FDF充满合并与FDF的PDF使用pdftk(fill_form with flatten命令)
- 继续遍历行直到生成所有
.pdf
's - 所有生成的文件合并在一起in结束和单个pdf给客户端
我用passthru
给客户端的原始输出(节省时间写入文件),但这只是一点点的性能改进。对于200条记录,总操作时间约为50秒,我希望以某种方式降低至少10秒。
理想的情况是在内存中操作所有这些pdf文件,而不是将它们中的每一个都写入单独的文件,但是输出结果是不可能的,因为我无法将这种数据传递给外部工具,如pdftk 。 另一个想法是用所有这些行生成一个大的.fdf
文件,但看起来这是不允许的。
我在这里错过了一些非常微不足道的东西吗?
我很感谢任何建议。
PS。我知道我可以使用一些很好的库,比如pdflib,但我现在只考虑开放许可的库。
编辑:
我最多找出语法来构建一个.fdf
文件使用相同的PDF作为模板多页,花了几个小时,但没有找到任何好的文档。
你可以使用像webgrind Xdebug的一些分析工具,看看什么东西实际上是需要时间(然后你就可以解决),我倒在同样的情况下几天就回来,是使用开源这是排队系统在我的情况下花时间。我正在使用dompdf,这也是开源解决方案。 – amitchhajer
我做了分析,花费大量时间的主要事情是反复编写单独的pdf。 –
为什么不直接运行6或7个pdftk转换,应该将总时间缩短到10秒钟。 –