我正在尝试制作一个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,但是我觉得它们不适合我的需要。在
提前谢谢。在
因此,答案似乎是,我只需查看文件,然后按页手动查找字段。谢天谢地,字段没有改变文档之间的位置。在
似乎确实有一个bug(通常是用pdf?可能)没有重新绘制pdf文件。如果单击该字段,可以看到PyPDF2输入的新文本,但是必须手动复制和粘贴,才能永久地看到更改。在
相关问题 更多 >
编程相关推荐