Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Fill PDF forms programmatically with text values and checkboxes. Use when you need to populate fillable PDF forms (government forms, applications, surveys, etc.) with data. Supports setting text fields and checkboxes with proper appearance states for visual rendering.
Fill PDF forms programmatically with text values and checkboxes. Use when you need to populate fillable PDF forms (government forms, applications, surveys, etc.) with data. Supports setting text fields and checkboxes with proper appearance states for visual rendering.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Programmatically fill PDF forms with text values and checkboxes. Uses pdfrw to set form field values while preserving appearance streams for proper PDF viewer rendering.
Fill a PDF form with a dictionary of field names and values: from pdf_form_filler import fill_pdf_form fill_pdf_form( input_pdf="form.pdf", output_pdf="form_filled.pdf", data={ "Name": "John Doe", "Email": "john@example.com", "Herr": True, # Checkbox "Dienstreise": True, } )
Text fields: Set any text value (names, dates, addresses, etc.) Checkboxes: Set boolean values (True for checked, False/None for unchecked) Appearance states: Properly sets /On and /Off states for PDF viewer rendering Preserves structure: Doesn't strip form functionality—can be further edited No dependencies: Uses pdfrw (lightweight, pure Python)
Opens the PDF template Iterates through form fields Sets values for matching field names Handles checkboxes by setting both /V (value) and /AS (appearance state) Saves the filled PDF
Field names should match exactly as they appear in the PDF form. Common patterns: German forms: Herr, Frau, Dienstreise, Geschäftsnummer LfF English forms: Full Name, Email, Agree, Submit Date fields: Date, DOB, Start Date To discover field names in your PDF, use list_pdf_fields(): from pdf_form_filler import list_pdf_fields fields = list_pdf_fields("form.pdf") for field_name, field_type in fields: print(f"{field_name}: {field_type}") Field types: text: Text input field checkbox: Boolean checkbox radio: Radio button dropdown: Dropdown select signature: Signature field
fill_pdf_form( input_pdf="job_application.pdf", output_pdf="job_application_filled.pdf", data={ "Full Name": "Jane Smith", "Email": "jane.smith@example.com", "Phone": "555-1234", "Position": "Software Engineer", "Years Experience": "5", # Checkboxes "Willing to relocate": True, "Available immediately": False, "Background check consent": True, } )
Only fill specific fields, leave others blank: data = {"Name": "Jane Doe"} # Only Name is set fill_pdf_form("form.pdf", "form_filled.pdf", data)
Get all fields and prompt for values: from pdf_form_filler import list_pdf_fields fields = list_pdf_fields("form.pdf") data = {} for field_name, field_type in fields: if field_type == "text": data[field_name] = input(f"Enter {field_name}: ") elif field_type == "checkbox": data[field_name] = input(f"Check {field_name}? (y/n): ").lower() == 'y' fill_pdf_form("form.pdf", "form_filled.pdf", data)
Fill multiple PDFs with the same data: import os from pdf_form_filler import fill_pdf_form data = {"Name": "John Doe", "Date": "2026-01-24"} for filename in os.listdir("forms/"): if filename.endswith(".pdf"): fill_pdf_form( f"forms/{filename}", f"forms_filled/{filename}", data )
Some PDF viewers don't render checkboxes immediately. The value is set correctly (/On or /Off), but appearance isn't regenerated. Try opening in: Adobe Reader (will render automatically) Firefox (has better form support) evince or okular on Linux (usually works)
Use list_pdf_fields() to confirm exact field names. PDF forms can be tricky: Some use unusual names (e.g., Field_1 instead of descriptive names) Some have nested field structures
Some PDFs have narrow text fields. Either: Use shorter values Reduce font size in the PDF template itself Manual editing after filling
See scripts/fill_pdf_form.py for the full implementation using pdfrw.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.