我正在做一个基于模板的pdf文件的批量生成,我很快就遇到了很大的性能问题。我目前的设想如下:
.fdf文件写入磁盘.pdf。我使用passthru将原始输出提供给客户端(节省了编写文件的时间),但这只是性能上的一点改进。200张唱片的总操作时间约为50秒,我想在某种程度上减少到至少10秒。
理想的情况是在内存中操作所有这些pdfs,而不是将其中的每一个都写到单独的文件中,但是输出是不可能完成的,因为我不能像pdftk那样将这种数据传递给外部工具。另一个想法是生成一个包含所有这些行的大.fdf文件,但是看起来这是不允许的。
我是不是错过了一些很琐碎的东西?
我很感谢你的任何建议。
PS。我知道我可以使用一些好的库,如pdflib,但我现在只考虑开放的许可库。
编辑:
我想弄清楚语法,用相同的pdf作为模板构建一个包含多个页面的.fdf文件,花费了几个小时,找不到任何好的文档。
发布于 2012-09-07 05:27:18
在长期面临同样的问题(希望基于LaTeX生成pdfs )之后,我最终决定改用另一种粗糙但有效的技术:
我分两个步骤生成pdfs :首先,我使用像细枝或smarty这样的模板引擎生成html。其次,我使用mpdf来生成pdfs。我尝试了许多其他的html2pdf框架,最后使用了mpdf,它非常成熟,并且是长期开发的(频繁更新,功能丰富)。使用这种技术的好处:您可以使用css来设计您的文档(mpdf完全具有css功能),这与css好处(http://www.csszengarden.com)一起出现,并非常容易地生成动态表。
Mpdf解析html表并查找theader、tfooter元素,如果表大于一页大小,则将其放在每个页面上。此外,您还可以使用动态实体(如页、nr等)定义页眉和页脚元素。
我知道,使用这个迂回似乎是一个解决办法,但老实说,没有乳胶,pdf的引擎是一样强大和简单的html!
发布于 2012-09-01 18:26:54
尝试另一个不那么复杂的库,如fpdf (http://www.fpdf.org/)
我觉得它很好,很精巧。
始终找那些小的库,只做你需要他们做的事情。
图书馆越大,消耗的资源就越多。
发布于 2012-09-01 21:31:30
这无助于您的多页问题,但我注意到pdftk接受-字符的意思是“从标准输入中读取”。
您可以通过它的stdin将.fdf发送到pdftk进程,以避免将它们写入磁盘。
https://stackoverflow.com/questions/12174838
复制相似问题