我有一些PDF表单,我想用Django web应用程序中的数据自动填充这些表单,然后提供给用户下载.什么python库可以让我轻松地预填充PDF表单?这些表格是要打印出来的.
我有一些PDF表单,我想用Django web应用程序中的数据自动填充这些表单,然后提供给用户下载.什么python库可以让我轻松地预填充PDF表单?这些表格是要打印出来的.
如果您正在生成非常动态的PDF,并且需要以编程方式控制所有PDF:数据和布局,那么Reportlab非常棒.
要在现有的PDF中只填写表单,reportlab就有点夸张了,基本上你必须在reportlab中从头开始重建PDF,而不是仅仅使用已经制作好的表单来获取PDF.
PDF表单可以处理FDF个数据.不久前,我不得不将一个PHP FDF库移植到Python中,并将其作为fdfgen发布.我用它生成一个包含表单数据的fdf文件,然后用pdftk将fdf推送到PDF表单并生成输出.
整个过程如下:
使用fdfgen创建FDF文件:
from fdfgen import forge_fdf
fields = [('name','John Smith'),('telephone','555-1234')]
fdf = forge_fdf("",fields,[],[],[])
fdf_file = open("data.fdf","w")
fdf_file.write(fdf)
fdf_file.close()
然后运行pdftk以合并和展平:
pdftk form.pdf fill_form data.fdf output output.pdf flatten
在output.pdf中将出现一个填充的、扁平的(意味着不再有可编辑的表单域)pdf.
这有点复杂,而且pdftk安装起来可能会很痛苦(需要Java堆栈,而且Ubuntu9.10上有一些必须解决的错误),但这是我能想到的最简单的过程,工作流程也很方便(即,我们的设计师可以对他们想要的PDF进行所有布局更改,只要他们不更改字段名称,我就可以放入新的字段,一切都会正常工作).
我为缺少关于fdfgen的文件道歉.forge_fdf()实际上是您唯一需要的函数,它有一个文档字符串来解释参数.我只是从来没有抽出时间用它做更多的事情.