我有一些PDF表单,我想用Django Web应用程序中的数据自动填充,然后提供给用户下载。哪个python库可以让我轻松地预填充PDF表单?这些表格旨在打印出来。
如果你要生成非常动态的PDF,并且需要以编程方式控制所有PDF(数据和布局),则Reportlab非常有用。
仅在现有的PDF中填写表格,reportlab是过大的,基本上,你将不得不在reportlab中从头开始重建PDF,而不仅仅是用已经制成的表格来获取PDF。
PDF表单可处理FDF数据。不久前,我将PHP FDF库移植到Python并将其发布为fdfgen。我用它来生成带有表单数据的fdf文件,然后使用pdftk将fdf推入PDF表单并生成输出。
整个过程如下:
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 form.pdf fill_form data.fdf output output.pdf flatten
并在其中填充,拼合(意味着不再有可编辑的表单字段)pdf将出现在output.pdf中。
这有点复杂,并且安装pdftk可能很麻烦(需要Java堆栈,并且必须解决Ubuntu 9.10上的错误),但这是我能够想到的最简单的过程,而且工作流程这很方便(即,我们的设计人员可以对所需的PDF进行所有布局更改,并且只要不更改字段名称,我就可以放下新的PDF,一切都会正常进行)。
对于缺少有关fdfgen的文档,我深表歉意。forge_fdf()实际上是你唯一需要的功能,并且它具有一个文档字符串来解释参数。我只是从来没有完全围绕它做更多的事情。