0

我正在尝试制作一个 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,但觉得它们不符合我的需求。

提前致谢。

4

1 回答 1

0

所以答案似乎是我只需要浏览文件并按页面手动查找字段。值得庆幸的是,这些字段没有改变文档之间的位置。

似乎确实存在未重绘pdf文件的错误(通常是pdf?也许)。如果单击该字段,则可以看到 PyPDF2 输入的新文本,但是必须手动复制和粘贴才能永久看到该更改。

于 2017-04-24T08:13:01.177 回答