python 填写网页表单生成pdf_如何在Django/Python中自动填充PDF表单?

如果您正在生成非常动态的pdf,并且需要以编程方式控制所有的pdf:data和layout,那么Reportlab非常棒。

要在现有的PDF中填写表单,reportlab有点过头了,您基本上需要在reportlab中从头开始重建PDF,而不是只使用已经生成的表单来获取PDF。

PDF表单使用FDF数据。前一段时间我在Python上移植了一个PHP FDF库,当时我不得不这样做,并将其作为fdfgen发布。我使用它生成一个包含表单数据的fdf文件,然后使用pdftk将fdf推送到PDF表单并生成输出。

整个过程如下:您(或设计师)在Acrobat或其他语言中设计PDF,并标记表单字段并记下字段名称(我不确定具体是如何完成的;我们的设计师执行此步骤)。假设您的表单有“name”和“telephone”字段。

使用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堆栈,Ubuntu 9.10上还有一些bug需要解决),但这是我能想到的最简单的过程,而且工作流程也很方便(例如,我们的设计师可以对他们想要的PDF文件进行所有布局更改,只要他们不更改字段的名称,我就可以把新的放进去,一切都会继续工作)。

很抱歉没有关于fdfgen的文件。forge_fdf()实际上是您需要的唯一函数,它有一个docstring来解释参数。我只是从来没有时间做更多的事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值