当前位置: 首页 > article >正文

Python 在PDF中插入文本超链接和图片超链接 (详解)

目录

使用工具

Python给PDF添加网页链接

Python给PDF添加内部文件链接

Python给PDF添加外部文件链接

Python给PDF中现有文本添加超链接

Python在PDF中插入带超链接的图片

Python给PDF中现有图片添加超链接


超链接是指向特定资源(如外部网页、文档内部位置或其他外部文件)的链接。作为一种有效的导航工具,它能够帮助读者快速访问相关信息。通过在PDF文档中添加文本超链接和图片超链接,你可以显著提升文档的互动性和用户体验。这篇文章将详细介绍如何使用Python给PDF添加文本超链接和图片超链接,包括以下内容:

  • Python给PDF添加网页链接
  • Python给PDF添加内部文件链接
  • Python给PDF添加外部文件链接
  • Python给PDF中现有文本添加超链接
  • Python在PDF中插入带超链接的图片
  • Python给PDF中现有图片添加超链接

使用工具

要在Python应用程序中实现给PDF文档添加超链接,可以使用Spire.PDF for Python。它是一个专门用于在Python应用程序中创建、读取、操作和转换PDF文档的库。

你可以通过在终端运行以下命令来从PyPI安装Spire.PDF for Python:

pip install Spire.PDF

Python给PDF添加网页链接

网页链接可以帮助用户快速跳转到指定的外部网页。在PDF文档中添加网页链接,可以引导读者访问相关的在线资源,如文章、视频或网站等。在商业或教育等用途的PDF中经常用到网页链接。

Spire.PDF提供了PdfTextWebLink类,用于生成网页链接并将其绘制到PDF页面上。下面是具体实现代码:

from spire.pdf.common import *
from spire.pdf import *

# 创建PDF文档
doc = PdfDocument()

# 添加页面
page = doc.Pages.Add()

# 初始化x和y坐标
x = 10.0
y = 50.0

# 创建字体
label_font = PdfTrueTypeFont("宋体", 14.0, PdfFontStyle.Regular, True)
link_font = PdfTrueTypeFont("宋体", 14.0, PdfFontStyle.Underline, True)

# 在页面上绘制文本
label = "网页链接:"
format = PdfStringFormat()
format.MeasureTrailingSpaces = True
page.Canvas.DrawString(label, label_font, PdfBrushes.get_Orange(), x, y, format)
x += label_font.MeasureString(label, format).Width

# 在页面上绘制网页链接
web_link = PdfTextWebLink()
web_link.Text = "CSDN首页"
web_link.Url = "https://www.csdn.net/"
web_link.Font = link_font
web_link.Brush = PdfBrushes.get_Blue()
web_link.DrawTextWebLink(page.Canvas, PointF(x, y))

# 保存生成的PDF文件
doc.SaveToFile("网页链接.pdf")
doc.Close()

Python插入网页链接到PDF

Python给PDF添加内部文件链接

内部文件链接可以让读者在同一PDF文档内快速跳转至不同的页面或章节。对于内容较长或结构复杂的文档,这种链接极大地改善了用户的导航体验,使他们能够更快速、准确地找到所需信息。

要给PDF添加内部文件链接,可以使用PdfDocumentLinkAnnotation类。下面是具体实现代码:

from spire.pdf.common import *
from spire.pdf import *

# 创建PDF文档
doc = PdfDocument()

# 添加两个页面
doc.Pages.Add()
doc.Pages.Add()

# 初始化x和y坐标
x = 10.0
y = 50.0

# 创建字体
label_font = PdfTrueTypeFont("宋体", 14.0, PdfFontStyle.Regular, True)
link_font = PdfTrueTypeFont("宋体", 14.0, PdfFontStyle.Underline, True)

# 在页面上绘制文本
label = "内部文件链接: "
format = PdfStringFormat()
format.MeasureTrailingSpaces = True
doc.Pages[0].Canvas.DrawString(label, label_font, PdfBrushes.get_Orange(), x, y, format)
x += label_font.MeasureString(label, format).Width

# 在页面上绘制文本
text = "跳转到第2页"
doc.Pages[0].Canvas.DrawString(text, link_font, PdfBrushes.get_Blue(), x, y)

# 创建矩形
rectangle = RectangleF(x, y, link_font.MeasureString(text).Width, link_font.MeasureString(text).Height)
# 创建内部文件链接注释
documentLinkAnnotation = PdfDocumentLinkAnnotation(rectangle)
# 设置注释边框
documentLinkAnnotation.Border = PdfAnnotationBorder(0.0)
# 指定目标页面的索引(从0开始)
destinationPageIndex = 1
# 设置注释的目标位置
documentLinkAnnotation.Destination = PdfDestination(destinationPageIndex, PointF(x, y), 1.0)
# 将注释添加到第一页
doc.Pages[0].Annotations.Add(documentLinkAnnotation)

# 保存生成的PDF文件
doc.SaveToFile("内部文件链接.pdf")
doc.Close()

Python链接到PDF的其他页面

Python给PDF添加外部文件链接

外部文件链接允许用户通过PDF直接打开其他文件,例如相关的文档、表格或多媒体文件。这种链接的设置有助于构建更丰富的资源环境,为用户提供更多的参考资料和辅助信息。

要给PDF添加外部文件链接,可以使用PdfFileLinkAnnotation类。下面是具体实现代码:

from spire.pdf.common import *
from spire.pdf import *

# 创建PDF文档
doc = PdfDocument()

# 添加页面
page = doc.Pages.Add()

# 初始化x和y坐标
x = 10.0
y = 50.0

# 创建字体
label_font = PdfTrueTypeFont("宋体", 14.0, PdfFontStyle.Regular, True)
link_font = PdfTrueTypeFont("宋体", 14.0, PdfFontStyle.Underline, True)

# 在页面上绘制文本
label = "外部文件链接: "
format = PdfStringFormat()
format.MeasureTrailingSpaces = True
doc.Pages[0].Canvas.DrawString(label, label_font, PdfBrushes.get_Orange(), x, y, format)
x += label_font.MeasureString(label, format).Width

# 在页面上绘制文本
text = "打开图片"
page.Canvas.DrawString(text, link_font, PdfBrushes.get_Blue(), x, y)

# 创建矩形
rectangle = RectangleF(x, y, link_font.MeasureString(text).Width, link_font.MeasureString(text).Height)
# 创建外部文件链接注释
fileLinkAnnotation = PdfFileLinkAnnotation(rectangle, "C:/Users/Administrator/Desktop/images.png")
# 设置注释边框
fileLinkAnnotation.Border = PdfAnnotationBorder(0.0)
# 将注释添加到页面
page.Annotations.Add(fileLinkAnnotation)

# 保存生成的PDF文件
doc.SaveToFile("外部文件链接.pdf")
doc.Close()

Python插入外部文件链接到PDF

Python给PDF中现有文本添加超链接

通过给PDF中的现有文本添加超链接,可以将文中的特定词汇或短语转化为可点击的链接来指向网页、文档的内部位置或其他外部文件。

要给PDF中的现有文本添加超链接,需要先使用PdfTextFinder类在PDF页面上找到该文本,定位到其所在位置,然后使用PdfUriAnnotation类为其添加超链接。下面是具体实现代码:

from spire.pdf.common import *
from spire.pdf import *

# 打开PDF文档
doc = PdfDocument()
doc.LoadFromFile("什么是Adobe Acrobat.pdf")

# 标记注释是否已添加
annotation_added = False

# 遍历文档中的所有页面
for i in range(doc.Pages.Count):
    if annotation_added:
        break
    # 获取当前页面
    page = doc.Pages[i]
    # 创建PdfTextFinder对象
    finder = PdfTextFinder(page)
    # 查找所需文本
    textFragments = finder.Find("Adobe")
    if textFragments:
        # 获取第一个实例
        textFragment = textFragments[0]
        # 在第一个实例所在位置创建URL注释
        uriAnnotation = PdfUriAnnotation(textFragment.Bounds[0])
        # 设置注释URL
        uriAnnotation.Uri = "https://www.adobe.com/"
        # 设置注释边框
        uriAnnotation.Border = PdfAnnotationBorder(1.0)
        # 设置注释边框颜色
        uriAnnotation.Color = PdfRGBColor(Color.get_Red())
        # 将注释添加到文本存在的页面
        page.Annotations.Add(uriAnnotation)
        annotation_added = True

# 保存生成的PDF文件
doc.SaveToFile("给现有文本添加注释.pdf")
doc.Close()

Python给PDF现有文本添加超链接

Python在PDF中插入带超链接的图片

在PDF中插入带有超链接的图片,能够为用户提供更加直观的点击体验。无论是指向网页还是外部文件,这种视觉化的超链接形式,能有效吸引用户注意,并提供更丰富的交互功能。

除了可以给文本添加超链接以外,PdfUriAnnotation类也可用于为PDF中的图片添加超链接。下面是具体实现代码:

from spire.pdf.common import *
from spire.pdf import *

# 创建PDF文档
doc = PdfDocument()

# 添加页面
page = doc.Pages.Add()

# 打开图片
image = PdfImage.FromFile("C:/Users/Administrator/Downloads/Python.png")
# 创建矩形
rectangle = RectangleF(PointF(20.0, 50.0), SizeF(float(image.Width), float(image.Height)))
# 在页面上的矩形区域内绘制图片
page.Canvas.DrawImage(image, rectangle)

# 在图片所在位置创建URL注释
uriAnnotation = PdfUriAnnotation(rectangle)
# 设置注释URL
uriAnnotation.Uri = "https://www.python.org/"
# 设置注释边框
uriAnnotation.Border = PdfAnnotationBorder(0.0)
# 将注释添加到页面
page.Annotations.Add(uriAnnotation)

# 保存生成的PDF文件
doc.SaveToFile("插入带超链接的图片.pdf")
doc.Close()

Python插入带超链接的图片到PDF

Python给PDF中现有图片添加超链接

除了插入带有超链接的图片,还可以在现有的PDF图片上添加超链接。这样,用户点击图片时将直接跳转到设定的网页或其他文件,大大提升了PDF文档的可用性和交互体验。

要给PDF中的现有图片添加超链接,首先需要定位到该图片所在位置,然后使用PdfUriAnnotation类为其添加超链接。下面是具体实现代码:

from spire.pdf.common import *
from spire.pdf import *

# 打开PDF文档
doc = PdfDocument()
doc.LoadFromFile("什么是Adobe Acrobat.pdf")

# 获取第一页
page = doc.Pages[0]

# 创建PdfImageHelper对象
imageHelper = PdfImageHelper()

# 在页面上查找图片
imageList = imageHelper.GetImagesInfo(page)
if imageList:
    # 获取第一个图片
    image = imageList[0]
    # 在图片所在位置创建URL注释
    uriAnnotation = PdfUriAnnotation(image.Bounds)
    # 设置注释URL
    uriAnnotation.Uri = "https://www.adobe.com/"
    # 设置注释边框
    uriAnnotation.Border = PdfAnnotationBorder(0.0)
    # 将注释添加到页面
    page.Annotations.Add(uriAnnotation)

# 保存生成的PDF文件
doc.SaveToFile("给现有图片添加超链接.pdf")
doc.Close()

Python给PDF现有图片添加超链接

以上就是如何使用Python在PDF中添加网页链接、内部/外部文件链接,以及为图片添加超链接的全部内容。


http://www.kler.cn/a/320142.html

相关文章:

  • 使用 Charles 调试 Flutter 应用中的 Dio 网络请求
  • 《C++11》深入剖析正则表达式库:解锁文本处理的高效之道
  • ubuntu支持中文的字体
  • 【PCIe 总线及设备入门学习专栏 5.3 -- PCIe PHY firmware load | trainning | link up 区别与联系】
  • 人工智能任务19-基于BERT、ELMO模型对诈骗信息文本进行识别与应用
  • 在 Webpack 中使用 预加载(Preloading) 技术可以通过动态导入(import())以及指定预加载的方式来进行优化
  • 怎么制作线上报名表_解锁报名新体验
  • Skyvern:基于LLM和CV的开源RPA
  • Cookie详情(含前端和后端相关示例)
  • mysql root密码重置
  • js冒泡排序
  • 828华为云征文|华为云Flexus X实例Windows Server 2019安装护卫神防火墙——为企业运维安全发挥重要作用!!!
  • vue2加载本地html文件
  • SQL - 进阶语法(二)约束
  • linux----进程地址空间
  • 【读写分离?聊聊Mysql多数据源实现读写分离的几种方案】
  • keepalived+lvs集群,实现高可用
  • 初识Jenkins持续集成系统
  • 《ElementUI/Plus 踩坑》el-table + sortablejs 拖拽顺序错乱(Vue2/3适用)
  • SSH 远程连接到 Linux 服务器上的 SQLite
  • 数据结构——广义表
  • uni-app+vue3微信小程序怎么获取 this.getTabBar()
  • 计算机网络(九) —— Tcp协议详解
  • Redisson分布式锁的概念和使用
  • Github 2024-09-25 C开源项目日报 Top9
  • Visual Studio Code的常用快捷键