# 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
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:
- `--markup` Generate a PDF highlighting white boxes
- `--fields` Add interactive form fields
- `--fill` Fill form fields using data from a CSV file
- `--capture` Export filled form data to CSV
- `--input-csv` Load field data from a CSV instead of extracting
- `--debug` Show detailed processing logs
### Example workflow:
```
flyfield --input-pdf form.pdf --markup --fields
flyfield --input-pdf form-fields.pdf --input-csv form.csv --fill form-fill.csv
flyfield --input-pdf form-filled.pdf --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 detection
- `layout` — analyse, group and filter fields
- `markup_and_fields` — generate fields and markings
- `io_utils` — data I/O
- `utils` — utility functions
For CLI help:
```
python -m flyfield.cli --help
```
***
## License
GNU GPL v3.0 or later. See [LICENSE](LICENSE).
***
## Contributing
Contributions welcome via issues and pull requests.
***
## Acknowledgements
- Powered by [PyMuPDF](https://pymupdf.readthedocs.io).
- Uses [PyPDFForm](https://pypdfform.readthedocs.io).
- Designed to simplify workflows involving white boxed PDF form fields.
***
Raw data
{
"_id": null,
"home_page": null,
"name": "flyfield",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "pdf, form, fields, extraction, pymupdf, pypdfforms",
"author": null,
"author_email": "flywire <flywire0@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/c5/3e/a3a8d9ac267384546d8151235174dbf6d37c70a5a00cbb3cf55fa9602c75/flyfield-2025.9.15.tar.gz",
"platform": null,
"description": "# flyfield\n\nTransform static white box PDF forms into interactive forms for fast automation.\n\n***\n## Overview\n\n**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.\n\n***\n## Key Features\n\n- Generate interactive form fields and marked-up PDFs from PDF white box forms\n- Fill and export form data using CSV files\n- Seamlessly convert money values between PDF text and CSV number formats\n- Simple command-line interface for efficient workflows\n- Open source and flexible for diverse PDF automation needs\n\n***\n## Installation\n\nInstall with pipx:\n\n```\npipx install flyfield\n```\n\nCheck version:\n\n```\nflyfield --version\n```\n\nOr install via pip:\n\n```\npip install flyfield\n```\n\n\n***\n## Usage\n\nRun commands on PDF files as needed:\n\n```\nflyfield --input-pdf myfile.pdf --markup\n```\n\n\n### Options:\n\n- `--markup` Generate a PDF highlighting white boxes\n- `--fields` Add interactive form fields\n- `--fill` Fill form fields using data from a CSV file\n- `--capture` Export filled form data to CSV\n- `--input-csv` Load field data from a CSV instead of extracting\n- `--debug` Show detailed processing logs\n\n\n### Example workflow:\n\n```\nflyfield --input-pdf form.pdf --markup --fields \nflyfield --input-pdf form-fields.pdf --input-csv form.csv --fill form-fill.csv \nflyfield --input-pdf form-filled.pdf --capture \n```\n\n\n***\n## For Developers\n\nClone and install development tools:\n\n```\ngit clone https://github.com/flywire/flyfield.git \ncd flyfield \npip install -e .[dev] \n```\n\nRun tests:\n\n```\ntox \n```\n\nModules:\n\n- `extract` \u2014 box detection\n- `layout` \u2014 analyse, group and filter fields\n- `markup_and_fields` \u2014 generate fields and markings\n- `io_utils` \u2014 data I/O\n- `utils` \u2014 utility functions\n\nFor CLI help:\n\n```\npython -m flyfield.cli --help \n```\n\n\n***\n## License\n\nGNU GPL v3.0 or later. See [LICENSE](LICENSE).\n\n***\n## Contributing\n\nContributions welcome via issues and pull requests.\n\n***\n## Acknowledgements\n\n- Powered by [PyMuPDF](https://pymupdf.readthedocs.io).\n- Uses [PyPDFForm](https://pypdfform.readthedocs.io).\n- Designed to simplify workflows involving white boxed PDF form fields.\n\n***\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "Tools for extracting, processing, and generating interactive fields for PDFs containing white box fields.",
"version": "2025.9.15",
"project_urls": null,
"split_keywords": [
"pdf",
" form",
" fields",
" extraction",
" pymupdf",
" pypdfforms"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a54900de92c57945ff618738081326dd796eea8e574d7424902384c7be5d1d8a",
"md5": "f61169fa50c9dfce13937eeada3204a2",
"sha256": "3c4ceef27ced730ec1c8b9a90070f77854fd7eb8689d250105203a216910eba7"
},
"downloads": -1,
"filename": "flyfield-2025.9.15-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f61169fa50c9dfce13937eeada3204a2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 26656,
"upload_time": "2025-09-15T08:44:02",
"upload_time_iso_8601": "2025-09-15T08:44:02.636571Z",
"url": "https://files.pythonhosted.org/packages/a5/49/00de92c57945ff618738081326dd796eea8e574d7424902384c7be5d1d8a/flyfield-2025.9.15-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c53ea3a8d9ac267384546d8151235174dbf6d37c70a5a00cbb3cf55fa9602c75",
"md5": "f01006e54b73df89ca6ef6b28004fe32",
"sha256": "7eda9ae252adb0507527b60495bb820dce125b6257328f0ce4e39520f2f5abec"
},
"downloads": -1,
"filename": "flyfield-2025.9.15.tar.gz",
"has_sig": false,
"md5_digest": "f01006e54b73df89ca6ef6b28004fe32",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 22603,
"upload_time": "2025-09-15T08:44:03",
"upload_time_iso_8601": "2025-09-15T08:44:03.956433Z",
"url": "https://files.pythonhosted.org/packages/c5/3e/a3a8d9ac267384546d8151235174dbf6d37c70a5a00cbb3cf55fa9602c75/flyfield-2025.9.15.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-15 08:44:03",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "flyfield"
}