【问题标题】:Create a pdf with fillable fields python创建一个带有可填写字段python的pdf
【发布时间】:2017-06-02 08:01:17
【问题描述】:

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

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

如果以前有人这样做过,那么这些信息将非常有帮助。谢谢!

【问题讨论】:

    标签: python pdf pdf-generation


    【解决方案1】:

    面临同样的问题。刚刚发现,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)
    

    【讨论】:

      猜你喜欢
      • 2013-10-18
      • 1970-01-01
      • 2020-01-01
      • 2020-05-16
      • 1970-01-01
      • 2015-09-28
      • 2012-03-10
      • 2012-09-12
      • 2020-03-15
      相关资源
      最近更新 更多