PDF 中的超链接是一种交互式元素,点击后可跳转到文档中的特定位置、外部网站或其他资源。通过在 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 文档中添加网页链接、电子邮件链接和文件链接。以下是详细步骤:
- 创建一个 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 = "主页"
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 = "联系我们"
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 天的临时许可证。