Modifying AcroForm
Clear Text in Form
This example demonstrates how to clear text from Typewriter form fields in a PDF using Aspose.PDF for Python via .NET. It scans the first page of the PDF, identifies Typewriter forms, removes their content, and saves the updated document. This approach is useful for resetting or sanitizing form fields before redistributing a PDF.
- Load the input PDF document.
- Access forms on the first page.
- Iterate over each form and check if it is a
Typewriter
form. - Use TextFragmentAbsorber to find text fragments in the form.
- Clear the text of each fragment.
- Save the modified PDF to the output file.
import aspose.pdf as ap
from aspose.pycore import cast, is_assignable
dataDir = "path/to/your/data/dir/"
path_infile = dataDir + infile
path_outfile = dataDir + outfile
document = ap.Document(path_infile)
# Get the forms from the first page
forms = document.pages[1].resources.forms
for form in forms:
# Check if the form is of type "Typewriter" and subtype "Form"
if (form.it == "Typewriter" and form.subtype == "Form"):
# Create a TextFragmentAbsorber to find text fragments
absorber = ap.Text.TextFragmentAbsorber()
absorber.visit(form)
# Clear the text in each fragment
for fragment in absorber.text_fragments:
fragment.Text = ""
# Save PDF document
document.save(path_outfile)
Get or Set Field Limit
The FormEditor class set_field_limit(field, limit) method allows you to set a field limit, the maximum number of characters that can be entered into a field.
import aspose.pdf as ap
from aspose.pycore import cast, is_assignable
# The path to the documents directory
data_dir = "/path/to/your/pdf/files/"
path_infile = os.path.join(work_dir, infile)
path_outfile = os.path.join(work_dir, outfile)
# Create FormEditor instance
form = ap.facades.FormEditor()
# Bind PDF document
form.bind_pdf(path_infile)
# Set field limit for "First Name"
form.set_field_limit("First Name", 15)
# Save PDF document
form.save(path_outfile)
Similarly, Aspose.PDF has a method that gets the field limit.
import aspose.pdf as ap
from aspose.pycore import cast, is_assignable
# The path to the documents directory
data_dir = "/path/to/your/pdf/files/"
path_infile = os.path.join(work_dir, infile)
document = ap.Document(path_infile)
if is_assignable(document.form[1], ap.forms.TextBoxField):
textBoxField = cast(ap.forms.TextBoxField, document.form[1])
print(f"Limit: {textBoxField.max_len}")
Set Custom Font for the Form Field
Form fields in Adobe PDF files can be configured to use specific default fonts. In the early versions of Aspose.PDF, only the 14 default fonts were supported. Later releases allowed developers to apply any font.
This code updates the appearance of a text box field in a PDF form by setting a custom font, size, and color, and then saves the modified document using Aspose.PDF for Python via .NET.
The following code snippet shows how to set the default font for PDF form fields.
import aspose.pdf as ap
from aspose.pycore import cast, is_assignable
data_dir = "/path/to/your/pdf/files/"
path_infile = os.path.join(work_dir, infile)
path_outfile = os.path.join(work_dir, outfile)
document = ap.Document(path_infile)
if is_assignable(document.form[1], ap.forms.TextBoxField):
textBoxField = cast(ap.forms.TextBoxField, document.form[1])
font = ap.text.FontRepository.find_font("Calibri")
textBoxField.default_appearance = ap.annotations.DefaultAppearance(font, 10, ap.Color.black.to_rgb())
document.save(path_outfile)
Remove fields in existing form
This code removes a specific form field (by its name) from a PDF document and saves the updated file using Aspose.PDF for Python via .NET.
- Load the PDF document.
- Delete a form field by name.
- Save the updated PDF.
import aspose.pdf as ap
from aspose.pycore import cast, is_assignable
data_dir = "/path/to/your/pdf/files/"
path_infile = os.path.join(work_dir, infile)
path_outfile = os.path.join(work_dir, outfile)
document = ap.Document(path_infile)
# Delete a particular field by name
document.form.delete("First Name")
# Save PDF document
document.save(path_outfile)