claird / PyPDF4

A utility to read and write PDFs with Python
obsolete-https://pythonhosted.org/PyPDF2/
Other
328 stars 61 forks source link

Fillable forms #89

Open polyglot-jones opened 3 years ago

polyglot-jones commented 3 years ago

Added sample code that copies a PDF, changing field values along the way (i.e. using a PDF with fillable fields as a template). This required modifying the PdfFileWriter.updatePageFormFieldValues() method (in pdf.py) to let you flag the filled-in field as read-only. This also required adding a new method to PdfFileWriter called have_viewer_render_fields(). It sets the /AcroForm/NeedAppearances flag. (FYI: The example PDF (fillable_form.pdf) was created in LibreOffice using the attached fillable_form.odt document.)

NOTE: updatePageFormFieldValues() didn't have a unit test that I could see. When I added one, I also had to fix two adjacent tests (to close the temp file before deleting it) to get test_pdf.py running again.

NOTE: I'm not set up for tox at the moment. I tested it using 3.8 only.