PyPDFForm
The Python library & CLI for PDF forms.
What it is and what it does
PyPDFForm is a Python library and CLI tool for working with PDF forms end-to-end. It lets you create new forms and form fields from scratch, inspect existing form structure and metadata, update field styling and behavior, fill forms programmatically, and perform common PDF operations like page extraction and merging. The library wraps lower-level PDF manipulation via pikepdf and reportlab, exposing a straightforward API for both Python code and command-line workflows.
Typical use cases range from one-off form filling to building larger document automation pipelines. You can load a template PDF, populate its fields with data, and write the result—or use the CLI for quick command-line form operations. The package is actively maintained, supports modern Python versions, and carries no known security vulnerabilities.
Use it for:
- Batch-fill hundreds of PDF forms with data from a database or spreadsheet in a single script.
- Inspect form field names and types programmatically before deciding how to populate them.
- Create new PDF forms with custom fields, styling, and behavior from Python code.
- Automate document workflows that require extracting pages from multiple PDFs and merging them.
- Build a CLI tool for non-developers to fill forms without writing code.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyPDFForm creates, inspects, styles, and fills PDF forms via Python API or command line, with utilities for page extraction and PDF merging.
Yes. PyPDFForm is actively maintained, carries no known vulnerabilities, has low install friction, and is licensed permissively under MIT. It solves a real problem—PDF form automation—with a clean API and CLI interface. The 6 dependencies are all well-established libraries. Install it if you need to create, inspect, or fill PDF forms programmatically.
Install
pypdfform on PyPI
pip
pip install pypdfformuv
uv add pypdfformpoetry
poetry add pypdfformInstalling PyPDFForm
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with a release 6 days ago and 1236 repository stars. Requires modern Python (3.10+) but supports current versions through 3.14.
License in practice
MIT license permits commercial and private use with minimal restrictions—you may use, modify, and distribute PyPDFForm freely provided you include the license notice.
Quickstart
pip install PyPDFForm
from PyPDFForm import PdfWrapper
filled = PdfWrapper("form.pdf", need_appearances=True).fill({
"field_name": "value",
"checkbox": True,
})
filled.write("output.pdf")
Requires Python 3.10 or later. Underlying dependencies (pikepdf, reportlab, pillow) may require system libraries for image and font handling on some platforms.
Verify before relying
- Whether the package handles complex nested form structures or only flat field layouts.
- Performance characteristics when processing large batches of forms or very large PDF files.
- Extent of CLI feature parity with the Python API for form creation and styling.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — cryptography, fonttools, pikepdf, pillow, pypdf, reportlab |
| Maintenance | actively maintained — 6 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 201,071/month — #9,679 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pypdfform-5.5.5-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pypdftkPython wrapper that drives the pdftk binary to…
permissive · top 15,000 on PyPI
fillpdfFills, flattens, and manipulates PDF forms by…
permissive · top 15,000 on PyPI
pdfrw2pdfrw2 reads, writes, and manipulates PDF files…
permissive · top 15,000 on PyPI
pikepdfpikepdf reads, writes, repairs, and transforms…
copyleft · top 5,000 on PyPI
pymupdfPyMuPDF extracts, renders, converts, and…
agpl · top 1,000 on PyPI
pdfrwpdfrw reads, writes, and manipulates PDF files…
permissive · top 5,000 on PyPI
PyPDF2PyPDF2 is a pure-Python library for reading,…
permissive · top 1,000 on PyPI
pdftextExtracts plain text or structured blocks,…
permissive · top 15,000 on PyPI
pymupdf-layoutPyMuPDF Layout analyzes PDF structure and…
agpl · top 1,000 on PyPI
PyPDF3PyPDF3 is a pure-Python PDF toolkit for…
permissive · top 15,000 on PyPI