Pdf form filling
Methods for programmatically filling PDF forms (AcroForms) and saving the results using pypdf.From its SKILL.md
npx -y skills add cxcscmu/SkillLearnBench --skill pdf-form-fillingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
1.8 KB, 409 tokens by cl100k_base, as published. Nobody here has run it
PDF Form Filling Skill
This skill covers how to fill out AcroForms in a PDF document using pypdf.
Prerequisites
- Python 3.x
pypdflibrary (pip install pypdf)
Usage Patterns
Filling Text Fields and Checkboxes
from pypdf import PdfReader, PdfWriter
def fill_pdf(input_pdf_path, output_pdf_path, data_dict):
reader = PdfReader(input_pdf_path)
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
# Fill form fields
writer.update_page_form_field_values(writer.pages[0], data_dict)
# Note: If fields span multiple pages, you might need to iterate
# through writer.pages and apply relevant parts of data_dict.
# However, writer.update_page_form_field_values can often find the fields
# globally if they are properly indexed.
with open(output_pdf_path, "wb") as output_stream:
writer.write(output_stream)
# Example data_dict
# For text fields: {"field_name": "Value"}
# For checkboxes: {"checkbox_name": "/Yes"} or similar
data = {
"full_name": "John Doe",
"is_citizen": "/Yes"
}
fill_pdf("blank.pdf", "filled.pdf", data)
Important Considerations
- Field Naming: Use the full hierarchical name found during inspection (e.g.,
SC-100[0].Page1[0].Field[0]). - Appearance Streams: Some PDF readers might not show the filled value until you click on the field unless
/NeedAppearancesis set to true in the PDF's Interactive Form Dictionary.pypdfhandles basic filling, but complex forms might need flattening or specific appearance settings. - Checkboxes: Checkbox values are typically
/Yes(or other export value) and/Off.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.