填充PDF文件 - Python

7 投票
3 回答
3941 浏览
提问于 2025-04-16 10:19

我有一个现成的PDF文档,里面有一些地方留了空位,像是占位符。

比如说 {{ first_name }}、{{ postcode }} 之类的。

我需要用Python来替换这些占位符的值。


有什么建议吗?

3 个回答

0

我使用reportlab这个工具来动态生成十万个PDF文件,这些文件里包含了页眉、页脚、图表、表格、项目符号和几种不同的段落样式等等。

http://www.reportlab.com/software/opensource/

3

你可以使用 Mako

from mako.template import Template

template = Template(filename='template.pdf')
output = Template.render(first_name='Simon', postcode='12345')

我忘了提,Mako 模板的默认写法会用到 ${first_name} 和 ${postcode} 这些变量。我不太确定这个设置是否可以更改。

4

这种做法有点奇怪,因为PDF文件本身并不是为了修改而设计的。根据你手上的PDF是怎么生成的,替换内容可能会非常困难。你不能轻易改变任何格式,包括换行,所以这种方法其实只有在你有某种表单的情况下才有用,这样你就知道字段会合适。

pyPdf 可能让你提取文本,但我没有看到可以在写第二个PDF时修改文本的功能。PDFedit 确实可以让你进行修改,并且可以编写脚本,但我不清楚怎么把它和Python连接起来。如果我没理解错,ReportLab的高级版本才可以读取PDF。

我建议你先想想 为什么 你的模板要用PDF格式,如果你确实需要从中做修改,可以试试PDFedit - 从这个描述中无法判断你的文档结构是什么样的,可能很难找到关键词。

撰写回答