Python: Remove Forms from a PDF Document

Interactive forms in PDFs are valuable tools that allow users to fill in information, complete surveys, or sign documents electronically. However, these forms can also add layers of complexity to a PDF, impacting both file size and the overall user experience. When forms are no longer needed, or when a document needs to be simplified for distribution or archiving, removing these interactive elements can be beneficial. In this article, we will demonstrate how to remove forms from a PDF document in Python using Spire.PDF for Python.

Install Spire.PDF for Python

This scenario requires Spire.PDF for Python and plum-dispatch v1.7.4. They can be easily installed in your Windows through the following pip command.

pip install Spire.PDF

If you are unsure how to install, please refer to this tutorial: How to Install Spire.PDF for Python on Windows

Remove a Specific Form from a PDF Document in Python

Spire.PDF for Python allows you to remove specific form fields from a PDF file by using either the indexes or the names of the form fields. The detailed steps are as follows.

  • Create an instance of the PdfDocument class.
  • Load a PDF document containing form fields using the PdfDocument.LoadFromFile() method.
  • Get the form of the document using the PdfDocument.Form property.
  • Get the form field collection using the PdfFormWidget.FieldsWidget property.
  • Remove a specific form field by its index using the PdfFormFieldWidgetCollection.RemoveAt(index) method. Or retrieve a form field by its name using the PdfFormFieldWidgetCollection[name] property, and then remove it using the PdfFormFieldWidgetCollection.Remove(field) method.
  • Save the resulting document using the PdfDocument.SaveToFile() method.
  • Python
from spire.pdf.common import *
from spire.pdf import *

# Create an instance of the PdfDocument class
doc = PdfDocument()
# Load a PDF file
doc.LoadFromFile("Forms.pdf")

# Get the form of the document
pdfForm = doc.Form
formWidget = PdfFormWidget(pdfForm)

# Get the form field collection
field_collection = formWidget.FieldsWidget

# Remove a specific form field by its index
field_collection.RemoveAt(0)

# Or remove a specific form field by its name
# text_box = field_collection["Name"]
# field_collection.Remove(text_box)

# Save the resulting document
doc.SaveToFile("remove_specific_form.pdf")
doc.Close()

Python: Remove Forms from a PDF Document

Remove All Forms from a PDF Document in Python

To remove all form fields from a PDF document, you need to iterate through the form field collection, and then remove each form field from the collection using the PdfFormFieldWidgetCollection.RemoveAt(index) method. The detailed steps are as follows.

  • Create an instance of the PdfDocument class.
  • Load a PDF document containing form fields using the PdfDocument.LoadFromFile() method.
  • Get the form of the document using the PdfDocument.Form property.
  • Get the form field collection using the PdfFormWidget.FieldsWidget property.
  • Iterate through all form fields in the collection.
  • Remove each form field from the collection using the PdfFormFieldWidgetCollection.RemoveAt(index) method.
  • Save the resulting document using the PdfDocument.SaveToFile() method.
  • Python
from spire.pdf.common import *
from spire.pdf import *

# Create an instance of the PdfDocument class
doc = PdfDocument()
# Load a PDF file
doc.LoadFromFile("Forms.pdf")

# Get the form of the document
pdfForm = doc.Form
formWidget = PdfFormWidget(pdfForm)

# Get the form field collection
field_collection = formWidget.FieldsWidget

# Check if there are any form fields in the collection
if field_collection.Count > 0:
    # Iterate through all form fields in the collection
    for i in range(field_collection.Count - 1, -1, -1):
        # Remove the current form field from the collection
        field_collection.RemoveAt(i)

# Save the resulting document
doc.SaveToFile("remove_all_forms.pdf")
doc.Close()

Python: Remove Forms from a PDF Document

Apply for a Temporary License

If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.