ccnmtl / fdfgen

port of PDF fdfgen library for filling in PDF forms to Python
BSD 3-Clause "New" or "Revised" License
171 stars 35 forks source link

fdfgen

Build Status

Python port of the PHP forge_fdf library by Sid Steward

PDF forms work with FDF data. I ported a PHP FDF library to Python a while back when I had to do this and released it as fdfgen. I use that to generate an fdf file with the data for the form, then use pdftk to push the fdf into a PDF form and generate the output.

QUICK INSTALL

pip install fdfgen

HOW IT WORKS

  1. You (or a designer) design the form.pdf in Acrobat.

  2. Mark the form fields and take note of the field names. This can be done either through Acrobat or by installing pdftk and entering the command line

    pdftk [pdf name] dump_data_fields
  3. Let's say your form has fields "name" and "telephone".

    Use fdfgen to create a FDF file:

    #!/usr/bin/env python
    from fdfgen import forge_fdf
    
    fields = [('name', 'John Smith'), ('telephone', '555-1234')]
    fdf = forge_fdf("",fields,[],[],[])
    
    with open("data.fdf", "wb") as fdf_file:
        fdf_file.write(fdf)
  4. Then you run pdftk to merge and flatten:

    pdftk form.pdf fill_form data.fdf output output.pdf flatten

    and a filled out, flattened (meaning that there are no longer editable form fields) pdf will be in output.pdf.

CHANGELOG

RUNNING TESTS: