PDF 文档中的超链接是常用的内容导航工具,可用于导航到文档内部或外部的相关信息。要保证链接能够有效地发挥作用,我们需要确保链接准确且更新及时。掌握更改和删除超链接的能力,能够帮助我们及时修改或删除失效及错误的链接,从而提升文档的专业性以及内容访问的便捷性。本文将演示如何使用 Spire.PDF for 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 中超链接的目标地址
在 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 天的临时许可证。