Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ccnmtl/fdfgen
port of PDF fdfgen library for filling in PDF forms to Python
https://github.com/ccnmtl/fdfgen
Last synced: about 5 hours ago
JSON representation
port of PDF fdfgen library for filling in PDF forms to Python
- Host: GitHub
- URL: https://github.com/ccnmtl/fdfgen
- Owner: ccnmtl
- License: bsd-3-clause
- Created: 2010-11-08T20:48:47.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2024-10-23T13:02:37.000Z (about 2 months ago)
- Last Synced: 2024-11-29T22:05:20.697Z (14 days ago)
- Language: Python
- Homepage:
- Size: 191 KB
- Stars: 171
- Watchers: 18
- Forks: 35
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fdfgen
[![Build Status](https://travis-ci.org/ccnmtl/fdfgen.svg?branch=master)](https://travis-ci.org/ccnmtl/fdfgen)
Python port of the PHP [forge_fdf](http://www.pdfhacks.com/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`](http://www.pdflabs.com/tools/pdftk-server/) 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 linepdftk [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
* 0.16.1 -- 2017-11-21 -- Fix `TypeError` in python 3.6 by Tom Grundy (@caver456)
* 0.16.0 -- 2017-02-22 -- Allow for different values for each checkbox by
* 0.15.0 -- 2016-09-23 -- Encode field names as UTF-16 fix by Andreas Pelme
* 0.14.0 -- 2016-08-09 -- Adobe FDF Compatibility added by Cooper Stimson (@6C1)
* 0.13.0 -- 2016-04-22 -- python 3 bugfix from Julien Enselme
* 0.12.1 -- 2015-11-01 -- handle alternative checkbox values fix from Bil Bas
* 0.12.0 -- 2015-07-29 -- python 3 bugfixes
* 0.11.0 -- 2013-12-07 -- python 3 port from Evan Fredericksen
* 0.10.2 -- 2013-06-16 -- minor code refactor and added command line options from Robert Stewart
* 0.10.1 -- 2013-04-22 -- unbalanced paren bugfix from Brandon Rhodes
* 0.10.0 -- 2012-06-14 -- support checkbox fields and parenthesis in strings from Guangcong Luo
* 0.9.2 -- 2011-01-12 -- merged unicode fix from Sébastien Fievet## RUNNING TESTS:
* Create a virtual environment
* tox is required to run the tests. You can install the correct version with
`pip install -r requirements-tests.txt`
* Run `tox` to run tests for all Python versions.
* To run a specific test and specific Python versions, you may use `tox -e py27
-- tests/test_encoding.py`