Tools for extracting, processing, and generating interactive fields for PDFs containing white box fields.
Project description
flyfield
Transform static white box PDF forms into interactive forms for fast automation.
Overview
flyfield automatically analyzes static PDF forms, creates fillable fields, marks field locations for verification, fills and extracts data, and seamlessly converts money values between PDF text and spreadsheet/database numeric formats.
Key Features
- Generate interactive form fields and marked-up PDFs from PDF white box forms
- Fill and export form data using CSV files
- Seamlessly convert money values between PDF text and CSV number formats
- Simple command-line interface for efficient workflows
- Open source and flexible for diverse PDF automation needs
Installation
Available on PyPI for easy installation and updates.
Install with pipx:
pipx install flyfield
Check version:
flyfield --version
Or install via pip:
pip install flyfield
Usage
Run commands on PDF files as needed:
flyfield --input-pdf myfile.pdf --markup
Options:
--markupGenerate a PDF highlighting white boxes--fieldsAdd interactive form fields--fillFill form fields using data from a CSV or FDF file--captureExport filled form data to CSV--input-csvLoad field data from a CSV instead of extracting--fdfUse with --capture for FDF format--debugShow detailed processing logs
Example workflow:
flyfield --input-pdf form.pdf --markup --fields
flyfield --input-pdf form-fields.pdf --fill form-fill.csv
flyfield --input-pdf form-filled.pdf --input-csv form.csv --capture
For Developers
Clone and install development tools:
git clone https://github.com/flywire/flyfield.git
cd flyfield
pip install -e .[dev]
Run tests:
tox
Modules:
extract— box detectionlayout— analyse, group and filter fieldsmarkup_and_fields— generate fields and markingsio_utils— data I/Outils— utility functions
For CLI help:
python -m flyfield.cli --help
License
GNU GPL v3.0 or later. See LICENSE.
Contributing
Contributions welcome via issues and pull requests.
Acknowledgements
- Powered by PyMuPDF.
- Uses PyPDFForm.
- Designed to simplify workflows involving white boxed PDF form fields.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flyfield-2026.4.13.tar.gz.
File metadata
- Download URL: flyfield-2026.4.13.tar.gz
- Upload date:
- Size: 26.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cb701ba3d306d57b3efb2460019bec307ec8726bdab226a248168bf8aaa7730
|
|
| MD5 |
81ae456bfc2095334f86fd1c95b7f408
|
|
| BLAKE2b-256 |
84698cb2a55f6880ef5bf7e5b298c1bdff954e877a78ca100784a11cf02abde0
|
Provenance
The following attestation bundles were made for flyfield-2026.4.13.tar.gz:
Publisher:
Create Tag & Publish Package.yml on flywire/flyfield
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flyfield-2026.4.13.tar.gz -
Subject digest:
8cb701ba3d306d57b3efb2460019bec307ec8726bdab226a248168bf8aaa7730 - Sigstore transparency entry: 1282765814
- Sigstore integration time:
-
Permalink:
flywire/flyfield@8e7df804bc4361f41ad30474d8e343314b65635f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/flywire
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
Create Tag & Publish Package.yml@8e7df804bc4361f41ad30474d8e343314b65635f -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file flyfield-2026.4.13-py3-none-any.whl.
File metadata
- Download URL: flyfield-2026.4.13-py3-none-any.whl
- Upload date:
- Size: 31.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6508914842873fb10ddd38b9a220933d24cde4aeddeedc27fe87c239d89fd4d2
|
|
| MD5 |
0894422b2a5262f5c9b4d03b4c9fdad9
|
|
| BLAKE2b-256 |
f828324e91593f7848b6355a623d89b18324f4de6ba88774af581bc67270396a
|
Provenance
The following attestation bundles were made for flyfield-2026.4.13-py3-none-any.whl:
Publisher:
Create Tag & Publish Package.yml on flywire/flyfield
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flyfield-2026.4.13-py3-none-any.whl -
Subject digest:
6508914842873fb10ddd38b9a220933d24cde4aeddeedc27fe87c239d89fd4d2 - Sigstore transparency entry: 1282765835
- Sigstore integration time:
-
Permalink:
flywire/flyfield@8e7df804bc4361f41ad30474d8e343314b65635f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/flywire
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
Create Tag & Publish Package.yml@8e7df804bc4361f41ad30474d8e343314b65635f -
Trigger Event:
workflow_dispatch
-
Statement type: