Skip to main content

Working with Acroforms

PDFDancer lets you work with PDF forms (AcroForms) programmatically. Select, fill, update, and delete form fields with simple API calls.


Selecting Form Fields

All Form Fields

from pdfdancer import PDFDancer

with PDFDancer.open("form.pdf") as pdf:
# Get all form fields across the document
all_fields = pdf.select_form_fields()

# Get all form fields on a specific page
page_fields = pdf.page(1).select_form_fields()

for field in page_fields:
print(f"Field: {field.name}, Type: {field.object_type}")

Form Fields by Name

with PDFDancer.open("form.pdf") as pdf:
# Find form fields by name
first_name_fields = pdf.select_form_fields_by_name("firstName")

# On a specific page
page_fields = pdf.page(1).select_form_fields_by_name("signature")

if first_name_fields:
print(f"Found field: {first_name_fields[0].name}")

Filling Form Fields

Fill Single Field

from pdfdancer import PDFDancer

with PDFDancer.open("form.pdf") as pdf:
# Find form field by name
fields = pdf.page(1).select_form_fields_by_name("signature")

if fields:
# Update the field value
fields[0].edit().value("Signed by Jane Doe").apply()

pdf.save("filled_form.pdf")

Bulk Form Filling

from pdfdancer import PDFDancer

with PDFDancer.open("form.pdf") as pdf:
# Define form data
form_data = {
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"phone": "555-1234"
}

# Fill all fields
for field_name, value in form_data.items():
fields = pdf.select_form_fields_by_name(field_name)
if fields:
fields[0].edit().value(value).apply()

pdf.save("filled_form.pdf")

Deleting Form Fields

from pdfdancer import PDFDancer

with PDFDancer.open("form.pdf") as pdf:
# Delete specific form fields
zip_fields = pdf.select_form_fields_by_name("zip")

for field in zip_fields:
field.delete()

pdf.save("output.pdf")

Next Steps