我正在尝试制作一个 pdf 生成器,我快到了,但无法弄清楚更新表单字段的最后一步。
我在 Python 3.6 的 Windows 环境中使用 PyPDF2
第一步是下载 pdf(其中有很多,尽管它们都非常相似并且都具有相同的表单字段)。然后,以下代码将打开 pdf 并编写一个新的。我的信念是,如果我更新表单字段字典并将该字典写入新文件,那么它将进行我想要的更改。问题是我无法弄清楚如何使更新的字典生效。
pdf = open(file, 'rb')
flObj = PdfFileReader(pdf)
flObj.decrypt(password)
dict = flObj.getFormTextFields()
writer = PdfFileWriter()
outputstream = open(my_file, 'wb')
dict['DB_Code'] = '2809785' #as an example
for i in range(flObj.getNumPages()):
writer.addPage(flObj.getPage(i))
writer.write(outputstream)
outputstream.close()
我可以在 PyPDF2 的文档中看到有 updatePageFormFieldValues(page, fields) 但是 getFormTextFields 函数返回的字典没有给出它适用的页面(这些字段总是分布在 pdf 中的 4 页上),所以我不太确定如何应用它。
我已经查看了许多其他问题和解决方案,例如this,但觉得它们不符合我的需求。
提前致谢。