pdf-form-fillerFill 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.
Install via ClawdBot CLI:
clawdbot install RaulSimpetru/pdf-form-fillerProgrammatically 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,
}
)
/On and /Off states for PDF viewer rendering/V (value) and /AS (appearance state)Field names should match exactly as they appear in the PDF form. Common patterns:
Herr, Frau, Dienstreise, Geschäftsnummer LfFFull Name, Email, Agree, SubmitDate, DOB, Start DateTo 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 fieldcheckbox: Boolean checkboxradio: Radio buttondropdown: Dropdown selectsignature: Signature fieldfill_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:
Use list_pdf_fields() to confirm exact field names. PDF forms can be tricky:
Field_1 instead of descriptive names)Some PDFs have narrow text fields. Either:
See scripts/fill_pdf_form.py for the full implementation using pdfrw.
Generated Mar 1, 2026
Automate the filling of government application forms, such as tax returns or visa applications, with user data extracted from databases or web forms. This reduces manual entry errors and speeds up processing times for agencies or service providers handling high volumes.
Streamline the job application process by automatically populating PDF application forms with candidate information from resumes or HR systems. This saves time for recruiters and ensures consistency across applications in large organizations.
Fill out PDF surveys or research forms programmatically based on collected data from online platforms or IoT devices. This enables efficient data aggregation and reporting for market research or academic studies.
Automate the completion of legal documents, such as contracts or compliance forms, by inserting client-specific details from case management systems. This reduces manual workload for law firms and minimizes errors in critical paperwork.
Populate patient intake forms or medical history questionnaires with data from electronic health records (EHRs). This improves accuracy and efficiency in healthcare settings, allowing staff to focus more on patient care.
Offer the skill as a cloud-based service where users pay a monthly fee to access PDF form filling via API or web interface. This model provides recurring revenue and scales easily with customer demand for automation.
Provide consulting services to businesses for integrating the PDF form filler into their existing workflows, such as CRM or ERP systems. Charge for setup, customization, and ongoing support based on project scope.
License the skill to other software companies or developers who want to embed PDF form filling into their own products. This generates revenue through one-time or recurring licensing fees while expanding market reach.
💬 Integration Tip
Use list_pdf_fields() to dynamically detect field names and types before filling, ensuring compatibility with various PDF templates and reducing errors in automated workflows.
Edit PDFs with natural-language instructions using the nano-pdf CLI.
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
Convert documents and files to Markdown using markitdown. Use when converting PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx, .xls), HTML, CSV, JSON, XML, images (with EXIF/OCR), audio (with transcription), ZIP archives, YouTube URLs, or EPubs to Markdown format for LLM processing or text analysis.
用 MinerU API 解析 PDF/Word/PPT/图片为 Markdown,支持公式、表格、OCR。适用于论文解析、文档提取。
Generate hand-drawn style diagrams, flowcharts, and architecture diagrams as PNG images from Excalidraw JSON
The awesome PPT format generation tool provided by baidu.