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()
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()
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.