使用可填写字段python创建pdf

时间:2017-01-18 03:44:35

标签: python pdf pdf-generation

所以我的任务是创建一个pdf,允许最终用户将信息输入pdf并打印或保存,或者。我试图创建的pdf是从具有可填写字段的pdf模板呈现的。我遇到的问题是每次我使用任何python库(pypdf2,pdfrw,reportlabs等等)来创建这个pdf时,它会使它变平并且导出后字段不再可填充。那里有什么可以实现这个目标吗?如果我必须采用平面模板文件并在其上呈现html表单,只要它有效,对我来说并不重要。 pdf是在acrobat中制作的,我确保删除密码。

有问题的pdf是在acrobat pro中创建的。我的python版本是2.7。

如果有人之前已经这样做过,那么这些信息将会非常有用。谢谢!

1 个答案:

答案 0 :(得分:0)

面对同样的问题。刚刚发现,output.pdf中的表单在okular或firefox中不可填写,但在google-chrome或chrome-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)