2017-01-18 22 views
0

私はエンドユーザがpdfに情報を入力してそれを印刷したり保存したりできるpdfの作成を任されています。私が作成しようとしているpdfは、塗りつぶし可能なフィールドを持つpdfテンプレートからレンダリングされています。私が持っている問題は、このpdfを作成するためにPythonライブラリ(pypdf2、pdfrw、reportlabsなど)を使用するたびに、それが平らになり、エクスポート後もフィールドが埋められなくなるということです。この目標を達成することができるものはありますか?フラットなテンプレートファイルをHTMLフォームにレンダリングしなければならないかどうかは、実際問題ではありません。 pdfはacrobatで作成され、私はパスワードを削除することを確認しました。fillable fieldsのpdfを作成するpython

問題のpdfはacrobatプロで作成されました。私のpythonバージョンは2.7です。

誰でもこれを前に行っていれば、その情報は非常に役立ちます。ありがとう!

答えて

0

同じ問題に直面しています。ちょうど見つかった、output.pdfのフォームは、okularまたはfirefoxで塗りつぶすことはできませんが、Google-chromeまたはchromium-browserで開くとまだ塗りつぶすことができます。

私はこの行を使用:

from PyPDF2 import PdfFileWriter, PdfFileReader 
from reportlab.pdfgen import canvas 

c = canvas.Canvas('watermark.pdf') 
c.drawImage('testplot.png', 350, 550, width=150, height=150) 
c.save() 

output_file = PdfFileWriter() 
watermark = PdfFileReader(open("watermark.pdf", 'rb')) 
input_file = PdfFileReader(file('template.pdf', 'rb')) 

page_count = input_file.getNumPages() 
for page_number in range(page_count): 
    print "Plotting png to {} of {}".format(page_number, page_count) 
    input_page = input_file.getPage(page_number) 
    input_page.mergePage(watermark.getPage(0)) 
    output_file.addPage(input_page) 

with open('output.pdf', 'wb') as outputStream: 
    output_file.write(outputStream) 
関連する問題