如何在DjangoPython中自动填充PDF表单?

如何在DjangoPython中自动填充PDF表单?,第1张

如何在Django / Python中自动填充PDF表单

如果你要生成非常动态的PDF,并且需要以编程方式控制所有PDF(数据和布局),则Reportlab非常有用。

仅在现有的PDF中填写表格,reportlab是过大的,基本上,你将不得不在reportlab中从头开始重建PDF,而不仅仅是用已经制成的表格来获取PDF。

PDF表单可处理FDF数据。不久前,我将PHP FDF库移植到Python并将其发布为fdfgen。我用它来生成带有表单数据的fdf文件,然后使用pdftk将fdf推入PDF表单并生成输出。

整个过程如下:

  1. 你(或设计者)使用Acrobat或其他工具设计PDF并标记表单字段并记下字段名称(我不确定具体如何完成;我们的设计师执行此步骤)。假设你的表单具有字段“名称”和“电话”。
  2. 使用fdfgen创建FDF文件:
from fdfgen import forge_fdffields = [('name','John Smith'),('telephone','555-1234')]fdf = forge_fdf("",fields,[],[],[])fdf_file = open("data.fdf","w")fdf_file.write(fdf)fdf_file.close()
  1. 然后运行pdftk进行合并和展平:
pdftk form.pdf fill_form data.fdf output output.pdf flatten

并在其中填充,拼合(意味着不再有可编辑的表单字段)pdf将出现在output.pdf中。

这有点复杂,并且安装pdftk可能很麻烦(需要Java堆栈,并且必须解决Ubuntu 9.10上的错误),但这是我能够想到的最简单的过程,而且工作流程这很方便(即,我们的设计人员可以对所需的PDF进行所有布局更改,并且只要不更改字段名称,我就可以放下新的PDF,一切都会正常进行)。

对于缺少有关fdfgen的文档,我深表歉意。forge_fdf()实际上是你唯一需要的功能,并且它具有一个文档字符串来解释参数。我只是从来没有完全围绕它做更多的事情。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5059555.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存