pdf 文档中的超链接是常用的内容导航工具,可用于导航到文档内部或外部的相关信息。要保证链接能够有效地发挥作用,我们需要确保链接准确且更新及时。掌握更改和删除超链接的能力,能够帮助我们及时修改或删除失效及错误的链接,从而提升文档的专业性以及内容访问的便捷性。本文将演示如何使用 spire.pdf for python 来修改或删除 pdf 文档中的超链接,确保文档信息准确、导航便捷,从而带来更好的用户体验。
安装 spire.pdf for python
本教程需要用到 spire.pdf for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.pdf
如果您不确定如何安装,请参考此教程:如何在 vs code 中安装 spire.pdf for python
使用 python 更新 pdf 中超链接的目标地址
在 pdf 文档中,超链接实际上是以注释形式展示在页面上的链接内容上的。因此,在编辑超链接时,就需要先通过 pdfpagebase.annotationswidget 属性获取 pdf 页面的所有注释。之后便可以获取任意一个作为超链接的注释,并通过 pdftextweblinkannotationwidget.url 属性来修改其链接地址。以下是详细操作步骤:
- 创建 pdfdocument 类的对象,并使用 pdfdocument.loadfromfile() 方法加载 pdf 文档。
- 使用 pdfdocument.pages.get_item() 方法获取文档的一页。
- 通过 pdfpagebase.annotationswidget 属性获取页面上的所有注释。
- 获取指定的超链接注释,并将其转换为 pdftextweblinkannotationwidget 对象。
- 通过 pdftextweblinkannotationwidget.url 属性为超链接设置新的目标地址。
- 使用 pdfdocument.savetofile() 方法保存文档。
- python
from spire.pdf.common import *
from spire.pdf import *
# 创建pdfdocument类的对象并加载pdf文档
pdf = pdfdocument()
pdf.loadfromfile("示例.pdf")
# 获取文档的第一页
page = pdf.pages.get_item(0)
# 获取页面上的所有批注
widgetcollection = page.annotationswidget
# 获取第二个超链接批注
annotation = widgetcollection.get_item(1)
# 将超链接批注转换为pdftextweblinkannotationwidget对象
link = pdftextweblinkannotationwidget(annotation)
# 为第二个超链接设置一个新的目标地址
link.url = "http://baike.eepw.com.cn/baike/showedition/id/462"
# 保存文档
pdf.savetofile("output/编辑超链接.pdf")
pdf.close()
使用 python 删除 pdf 文档中的超链接
spire.pdf for python 中的 pdfpagebase.annotationswidget.removeat() 方法能够帮助开发者轻松删除 pdf 页面上的指定超链接。此外,开发人员还可以借助 spire.pdf for python 遍历 pdf 文档的每一页及每页上的所有注释,识别出整个 pdf 文档中的所有超链接注释并删除。以下是详细操作步骤:
- 创建 pdfdocument 类的对象,并使用 pdfdocument.loadfromfile() 方法加载 pdf 文档。
- 删除指定的超链接需要使用 pdfdocument.pages.get_item() 方法获取文档中的一页,然后使用 pdfpagebase.annotationswidget.removeat() 方法删除指定的超链接注释。
- 删除文档中的所有超链接则需要循环遍历文档中的页面,并通过 pdfpagebase.annotationswidget 属性获取每个页面上的注释。然后循环遍历所有注释,检查每个注释是否是 pdftextweblinkannotationwidget 类的实例。如果是,则使用 pdfannotationcollection.remove() 方法将其删除。
- 使用 pdfdocument.savetofile() 方法保存文档。
- python
from spire.pdf import *
from spire.pdf.common import *
# 创建pdfdocument类的对象并加载pdf文档
pdf = pdfdocument()
pdf.loadfromfile("示例.pdf")
# 移除第一页上的第一个超链接
#page = pdf.pages.get_item(0)
#page.annotationswidget.removeat(0)
# 移除所有超链接
# 循环遍历文档中的每一页
for j in range(pdf.pages.count):
# 获取每一页
page = pdf.pages.get_item(j)
# 获取每一页上的注释
annotations = page.annotationswidget
# 检查注释是否为空
if annotations.count > 0:
# 循环遍历注释
i = annotations.count - 1
while i >=0:
# 获取一个注释
annotation = annotations.get_item(i)
# 检查注释是否为超链接
if isinstance(annotation, pdftextweblinkannotationwidget):
# 移除为超链接的注释
annotations.remove(annotation)
i -= 1
# 保存文档
pdf.savetofile("output/移除超链接.pdf")
pdf.close()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。