2017-04-21 115 views
0

我正在嘗試製作PDF生成器,我幾乎在那裏,但無法弄清楚更新表單字段的最後一步。如何使用PyPDF2更新字段

我在Windows環境中使用PyPDF2與Python 3.6

的第一步是下載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(頁,場),但是由getFormTextFields函數返回的字典裏沒有放棄,它適用於網頁(領域跨4傳播總是pdf中的頁面),所以我不太清楚如何應用這個。

我已經看過其他一些問題和解決方案,例如this,但不認爲它們適合我的需求。

在此先感謝。

回答

0

所以答案似乎是,我只需要瀏覽文件並通過頁面手動查找字段。謝天謝地,這些字段不會改變文件之間的位置。

確實似乎有一個錯誤(pdf一般嗎?也許),其中pdf文件不重繪。如果點擊該字段,可以看到PyPDF2輸入的新文本,然後必須手動複製並粘貼,以便永久地看到該更改。