如何用PyPDF2更新字段

2024-09-28 03:12:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个pdf生成器,我已经快到了,但是还不能确定更新表单字段的最后一步。在

我在python3.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的documentation中看到updatePageFormFieldValues(page,fields),但是getFormTextFields函数返回的字典没有给出它所应用的页面(这些字段在pdf中总是分布在4个页面上),所以我不太确定如何应用它。在

我已经看过很多其他的问题和解决方案,比如this,但是我觉得它们不适合我的需要。在

提前谢谢。在


Tags: 代码字典环境pdfwindows页面open单字
1条回答
网友
1楼 · 发布于 2024-09-28 03:12:26

因此,答案似乎是,我只需查看文件,然后按页手动查找字段。谢天谢地,字段没有改变文档之间的位置。在

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

相关问题 更多 >

    热门问题