pdf 中的超链接是一种交互式元素,点击后可跳转到文档中的特定位置、外部网站或其他资源。通过在 pdf 文档中插入超链接,您可以提供补充信息并增强文档的整体完整性。本文将演示如何使用 spire.pdf for python 在 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 文档中添加超链接
使用 spire.pdf for python,您可以在 pdf 文档中添加网页链接、电子邮件链接和文件链接。以下是详细步骤:
- 创建一个 pdf 文档并添加一个页面。
- 使用 pdfpagebase.canvas.drawstring() 方法指定一个 url 地址并将其直接绘制在页面上。
- 创建一个 pdftextweblink 对象。
- 使用 pdftextweblink 类的属性设置链接的显示文本、url 地址、字体和画笔。
- 使用 pdftextweblink.drawtextweblink() 方法在页面上绘制链接。
- 创建 pdffilelinkannotation 对象并添加指定文件。
- 使用 pdfpagebase.annotationswidget.add(pdffilelinkannotation) 方法将文件链接添加到页面注释中。
- 使用 pdfpagebase.canvas.drawstring() 方法绘制文件链接的超文本。
- 使用 pdfdocument.savetofile() 方法保存结果文件。
- python
from spire.pdf.common import *
from spire.pdf import *
# 创建一个pdfdocument对象
pdf = pdfdocument()
# 添加一个页面
page = pdf.pages.add()
# 设置初始的y坐标和x坐标
y = 30.0
x = 10.0
# 创建字体对象
font = pdftruetypefont("宋体", 14.0, pdffontstyle.regular, true)
font1 = pdftruetypefont("arial", 14.0, pdffontstyle.underline, true)
font2 = pdftruetypefont("宋体", 14.0, pdffontstyle.underline, true)
# 添加简单文字链接
label = "简单文字链接: "
format = pdfstringformat()
format.measuretrailingspaces = true
page.canvas.drawstring(label, font, pdfbrushes.get_orange(), 0.0, y, format)
x = font.measurestring(label, format).width
url = "https://www.e-iceblue.cn"
page.canvas.drawstring(url, font1, pdfbrushes.get_blue(), x, y)
y = y 28
# 添加超文本链接
label = "超文本链接:"
page.canvas.drawstring(label, font, pdfbrushes.get_orange(), 0.0, y, format)
x = font.measurestring(label, format).width
weblink = pdftextweblink()
weblink.text = "ag凯发旗舰厅主页"
weblink.url = url
weblink.font = font2
weblink.brush = pdfbrushes.get_blue()
weblink.drawtextweblink(page.canvas, pointf(x, y))
y = y 28
# 添加邮件链接
label = "邮件链接: "
page.canvas.drawstring(label, font, pdfbrushes.get_orange(), 0.0, y, format)
x = font.measurestring(label, format).width
link = pdftextweblink()
link.text = "联系ag凯发旗舰厅"
link.url = "mailto:support @e-iceblue.com"
link.font = font2
link.brush = pdfbrushes.get_blue()
link.drawtextweblink(page.canvas, pointf(x, y))
y = y 28
# 添加文档链接
label = "文档链接: "
page.canvas.drawstring(label, font, pdfbrushes.get_orange(), 0.0, y, format)
x = font.measurestring(label, format).width
text = "打开文件"
location = pointf(x, y)
size = font2.measurestring(text)
linkbounds = rectanglef(location, size)
filelink = pdffilelinkannotation(linkbounds, "c:\\users\\administrator\\desktop\\input.xlsx")
filelink.border = pdfannotationborder(0.0)
page.annotationswidget.add(filelink)
page.canvas.drawstring(text, font2, pdfbrushes.get_blue(), x, y)
# 将修改后的pdf文档保存到文件
pdf.savetofile("添加链接到pdf.pdf")
pdf.close()
python 在 pdf 现有文本中插入超链接
要在 pdf 文档中的现有文本上添加超链接,首先需要确定文本的位置。获得位置后,就可以创建一个带有链接的 pdfuriannotation 类对象,并将其添加到位置上。以下是详细步骤:
- 创建一个 pdfdocument 实例。
- 使用 pdfdocument.loadfromfile() 方法加载一个 pdf 文件。
- 使用 pdfdocument.pages 属性获取第一页。
- 使用 pdfpagebase.findtext() 方法查找指定文本在页面上的所有出现。
- 循环查找所有出现的文本,并根据每个出现的文本边界创建一个 pdfuriannotation 实例。
- 使用 pdfuriannotation 类下的属性设置超链接 url、边框和边框颜色。
- 使用 pdfpagebase.annotationswidget.add(pdfuriannotation) 方法将超链接插入到页面注释中。
- 使用 pdfdocument.savetofile() 方法保存 pdf 文件。
- python
from spire.pdf.common import *
from spire.pdf import *
# 创建一个pdfdocument对象
pdf = pdfdocument()
# 从文件加载pdf文档
pdf.loadfromfile("示例文档.pdf")
# 获取第一页
page = pdf.pages[0]
# 在页面中查找文本,忽略大小写
collection = page.findtext("spire.pdf for python", textfindparameter.ignorecase)
# 遍历查找到的结果集合
for find in collection.finds:
# 创建一个pdfuriannotation对象,并指定位置
uri = pdfuriannotation(find.bounds)
# 设置超链接的url
uri.uri = "https://www.e-iceblue.cn/introduce/spire-pdf-python.html"
# 设置超链接边框的宽度
uri.border = pdfannotationborder(1.0)
# 设置超链接的颜色
uri.color = pdfrgbcolor(color.get_blue())
# 将超链接添加到页面的注释部件中
page.annotationswidget.add(uri)
# 将修改后的pdf文档保存到文件
pdf.savetofile("查找文本并添加超链接.pdf")
pdf.close()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。