表单域及其相关的脚本或动作可能会增加 PDF 文件的大小,尤其是在大型文档中,多个表单域会显著影响文件的加载和处理速度。通过删除不必要的表单域,可以有效减小文件体积,提升文档的打开和浏览速度,从而优化用户体验。这篇文章将介绍如何使用 Spire.PDF for Python 和 Python 删除 PDF 中的表单域。
安装 Spire.PDF for Python
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
如果您不清楚如何安装,请参考此教程: 如何在 Windows 中安装 Spire.PDF for Python
Python 删除 PDF 中的特定表单域
Spire.PDF for Python 支持通过表单域的索引或名称来删除 PDF 文件中的特定表单域。以下是具体步骤:
- 创建 PdfDocument 类的实例。
- 使用 PdfDocument.LoadFromFile() 方法加载含有表单域的 PDF 文档。
- 使用 PdfDocument.Form 属性获取文档中表单域的集合。
- 使用 PdfFormWidget.FieldsWidget.RemoveAt(index) 方法删除集合中特定索引的表单域。
- 或者,通过 PdfFormWidget.FieldsWidget[name] 属性获取特定名称的表单域, 然后使用 PdfFormWidget.FieldsWidget.Remove(field) 方法将它其从集合中删除。
- 使用 PdfDocument.SaveToFile() 方法保存结果文档。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建 PdfDocument 实例
doc = PdfDocument()
# 加载 PDF 文件
doc.LoadFromFile("表单.pdf")
# 获取文档中的表单域集合
pdfForm = doc.Form
formWidget = PdfFormWidget(pdfForm)
# 根据索引删除集合中的第一个表单域
formWidget.FieldsWidget.RemoveAt(0)
# 或者通过表单域的名称删除表单域
# text_box = formWidget.FieldsWidget["姓名"]
# formWidget.FieldsWidget.Remove(text_box)
# 保存结果文档
doc.SaveToFile("删除特定表单.pdf")
doc.Close()
Python 删除 PDF 中的所有表单域
要删除 PDF 文档中的所有表单域,你需要从后往前遍历表单域集合,然后使用 PdfFormWidget.FieldsWidget.RemoveAt(index) 方法逐一删除每个表单域。以下是具体步骤:
- 创建 PdfDocument 类的实例。
- 使用 PdfDocument.LoadFromFile() 方法加载含有表单域的 PDF 文档。
- 使用 PdfDocument.Form 属性获取文档的表单域集合。
- 从后往前遍历表单域集合。
- 使用 PdfFormWidget.FieldsWidget.RemoveAt(index) 从集合中逐一删除表单域。
- 使用 PdfDocument.SaveToFile() 方法保存结果文档。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建 PdfDocument 实例
doc = PdfDocument()
# 加载 PDF 文件
doc.LoadFromFile("表单.pdf")
# 获取文档中的表单域集合
pdfForm = doc.Form
formWidget = PdfFormWidget(pdfForm)
# 检查集合中是否有表单域
if formWidget.FieldsWidget.Count > 0:
# 从后往前遍历所有表单域
for i in range(formWidget.FieldsWidget.Count - 1, -1, -1):
# 删除表单域
formWidget.FieldsWidget.RemoveAt(i)
# 保存结果文档
doc.SaveToFile("删除所有表单.pdf")
doc.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。