2017-04-21 13 views
0

私はpdfジェネレータを作成しようとしていますが、私はほとんどそこにいますが、フォームフィールドを更新する最後のステップを理解することはできません。PyPDF2でフィールドを更新するには

私は、Python 3.6

最初のステップは、(うちが、彼らはすべての非常によく似ているものの、多くのであり、それらはすべて同じフォームフィールドを持つ)PDFをダウンロードすることであると、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() 

getFormTextFields関数によって返された辞書は、それが適用されるページを与えるものではありませんが、私は(フィールドが4に広がっているupdatePageFormFieldValues(ページ、フィールド)があることPyPDF2のdocumentationで見ることができますpdfのページはいつも)、私はこれをどのように適用するかについてはあまりよく分かりません。

私はthisのような他の多くの質問や解決策を見てきましたが、私のニーズに合っているとは感じません。

ありがとうございます。

答えて

0

答えは、ファイルを調べて、ページごとに手動でフィールドを見つけなければならないように見えます。ありがたいことに、フィールド間で文書間の位置は変わりません。

pdfファイルが再描画されないバグ(一般には?と思われるかもしれません)があります。フィールドをクリックすると、PyPDF2が入力した新しいテキストを見ることができますが、手動でコピーして貼り付けて永久に変更を確認する必要があります。

関連する問題