Skip to main content

The Python library & CLI for PDF forms.

Project description

PDF Form Automation Simplified - Create, Inspect, Style, and Fill Forms in Python or from the Command Line.

Introduction

PyPDFForm is a Python library and command line tool for working with PDF forms. It provides Python APIs and CLI commands for creating, inspecting, updating, and filling forms, plus common PDF utilities.

With PyPDFForm, you can:

  • Create PDF forms, form fields, and raw elements.
  • Inspect form fields, metadata, and values.
  • Update field styling, behavior, and scripts.
  • Fill PDF forms.
  • Extract pages and merge PDFs.

The goal is to make PDF form work straightforward, whether you are handling one document or building a larger workflow.

Installing

To use PyPDFForm as a Python library, install the base package with pip:

pip install PyPDFForm

To use the CLI, install PyPDFForm with the cli extra using pipx:

pipx install "PyPDFForm[cli]"

Quick Example

Check out the GitHub repository for a live demo if you can't see it here.

The GIF above shows the CLI filling a PDF form. To try the same workflow with the Python library, download the sample PDF form and run:

from PyPDFForm import PdfWrapper

filled = PdfWrapper("sample_template.pdf", need_appearances=True).fill(
    {
        "test": "test_1",
        "check": True,
        "test_2": "test_2",
        "check_2": False,
        "test_3": "test_3",
        "check_3": True,
    },
)

filled.write("output.pdf")

After running this snippet, output.pdf will be written to the location you specified and should look like this.

Documentation

The official documentation can be found on the GitHub page of this repository.

Other Resources

Star History

This project is maintained entirely in my spare time. If you like the project please consider starring the GitHub repository. It is the best way to keep me motivated and continue making the project better.

Star History Chart

Project details


Release history Release notifications | RSS feed

This version

5.2.5

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypdfform-5.2.5.tar.gz (154.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypdfform-5.2.5-py3-none-any.whl (169.2 kB view details)

Uploaded Python 3

File details

Details for the file pypdfform-5.2.5.tar.gz.

File metadata

  • Download URL: pypdfform-5.2.5.tar.gz
  • Upload date:
  • Size: 154.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pypdfform-5.2.5.tar.gz
Algorithm Hash digest
SHA256 bf5c6d302303d30c6a11f188998cc415a306735f660113050a03c99fa6f6405d
MD5 25ee8cfb5ad8115b6ea2e8c3cf0dddaa
BLAKE2b-256 c0db5ff805a3086569c6d9be94939e366d1686dff0ab0fbf78719dde7d79f9c5

See more details on using hashes here.

File details

Details for the file pypdfform-5.2.5-py3-none-any.whl.

File metadata

  • Download URL: pypdfform-5.2.5-py3-none-any.whl
  • Upload date:
  • Size: 169.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pypdfform-5.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 fcb8610004f915f859b96931de5db1d8cf34d8c0f14023ea7ccf6f2c6ced1c70
MD5 705bf2c0dd0d8e40a18da94cdb7c5179
BLAKE2b-256 ec619f49b11d1533580adbf4979d4b93c92f9cf1def668820dd032960da0abf3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page