表单域及其相关的脚本或动作可能会增加 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 天的临时许可证。