我有一个可填写的 PDF,我已经填写了一些字段并保存了它。
我可以使用 pdfrw 和 ReportLab 将图像添加到 PDF;但是,当保存 PDF 时,输入到可填写字段中的数据已经消失。
谁能指出我正确的方向,以便我可以在保持填充字段的同时将图像添加到 PDF 中?
这是可重现的代码:
示例 PDF 在这里
from PIL import Image
from reportlab.pdfgen.canvas import Canvas
from pdfrw import PdfReader
from pdfrw.buildxobj import pagexobj
from pdfrw.toreportlab import makerl
inpfn = 'input.pdf'
outfn = 'output.pdf'
pages = PdfReader(inpfn).pages
page=pagexobj(pages[0])
canvas = Canvas(outfn)
canvas.doForm(makerl(canvas, page))
im = Image.open("photo.jpg")
canvas.drawInlineImage(im, 20, 175, width=100, height=60)
canvas.save()
这是输出PDF。如您所见,图像在那里,但字段都是空的。
我可以通过检查 PDF 的结构来验证最初读取 PDF 时字段中的数据是否存在:
for p in page:
for a in p['/Annots']:
print(a['/V'])
这会打印出一堆数据(带有奇怪的字符),但我确实可以看到输入表单的数据(例如,"trade_name"
)