繁体   English   中英

如何使用PyPDF2更新字段

[英]How to update a field with PyPDF2

我正在尝试制作一个pdf生成器,但我快到了,但是无法弄清楚更新表单字段的最后一步。

我在具有Python 3.6的Windows环境中使用PyPDF2

第一步是下载pdf文件(尽管它们非常相似并且都具有相同的表单字段,但有很多)。 下面的代码将打开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 ,但是觉得它们不符合我的需求。

提前致谢。

因此,答案似乎是我只需要浏览文件并逐页手动查找字段。 幸运的是,这些字段并未更改文档之间的位置。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM