广告位联系
返回顶部
分享到

Python在PDF中添加或删除超链接的操作

python 来源:互联网 作者:佚名 发布时间:2024-12-16 22:39:17 人浏览
摘要

PDF文件现已成为文档存储和分发的首选格式。然而,PDF文件的静态特性有时会限制其交互性。超链接是提高PDF文件互动性和用户体验的关键元素。Python作为一种强大的编程语言,拥有多种库和

PDF文件现已成为文档存储和分发的首选格式。然而,PDF文件的静态特性有时会限制其交互性。超链接是提高PDF文件互动性和用户体验的关键元素。Python作为一种强大的编程语言,拥有多种库和工具来处理PDF文件,包括添加、删除超链接。本文将详细介绍如何使用第三方库Spire.PDF for Python来进行这些操作。

所需Python库 - Spire.PDF for Python。可以通过下面的pip 命令直接安装:

pip install Spire.Pdf

Python 在PDF文档中添加超链接

Spire.PDF for Python支持在PDF中添加不同类型的超链接:

  • 简单文字链接:直接使用 PdfPageBase.Canvas.DrawString() 方法将其绘制到页面上。
  • 超文本链接、邮箱链接:通过 PdfTextWebLink.DrawTextWebLink() 方法绘制到页面上。
  • 文档链接:通过 PdfPageBase.AnnotationsWidget.Add(PdfFileLinkAnnotation) 方法添加。

Python 代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

from spire.pdf.common import *

from spire.pdf import *

 

# 创建PDF文档

pdf = PdfDocument()

 

# 添加页面

page = pdf.Pages.Add()

 

# 设置初始X和Y坐标

y = 30.0

x = 10.0

 

# 创建PDF字体

font = PdfTrueTypeFont("宋体", 14.0, PdfFontStyle.Regular, True)

font1 = PdfTrueTypeFont("宋体", 14.0, PdfFontStyle.Underline, True)

 

# 添加简单文本链接

label = "简单链接: "

format = PdfStringFormat()

format.MeasureTrailingSpaces = True

page.Canvas.DrawString(label, font, PdfBrushes.get_Black(), 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_Black(), 0.0, y, format)

x = font.MeasureString(label, format).Width

webLink = PdfTextWebLink()

webLink.Text = "主页"

webLink.Url = url

webLink.Font = font1

webLink.Brush = PdfBrushes.get_Blue()

webLink.DrawTextWebLink(page.Canvas, PointF(x, y))

y = y + 28

 

# 添加邮件链接

label = "邮件链接: "

page.Canvas.DrawString(label, font, PdfBrushes.get_Black(), 0.0, y, format)

x = font.MeasureString(label, format).Width

link = PdfTextWebLink()

link.Text = "联系我们"

link.Url = "mailto:support @e-iceblue.com"

link.Font = font1

link.Brush = PdfBrushes.get_Blue()

link.DrawTextWebLink(page.Canvas, PointF(x, y))

y = y + 28

 

# 添加文档链接

label = "文档链接: "

page.Canvas.DrawString(label, font, PdfBrushes.get_Black(), 0.0, y, format)

x = font.MeasureString(label, format).Width

text = "点击打开文件"

location = PointF(x, y)

size = font1.MeasureString(text)

linkBounds = RectangleF(location, size)

fileLink = PdfFileLinkAnnotation(linkBounds, "C:\\Users\\Administrator\\Desktop\\排名.xlsx")

fileLink.Border = PdfAnnotationBorder(0.0)

page.AnnotationsWidget.Add(fileLink)

page.Canvas.DrawString(text, font1, PdfBrushes.get_Blue(), x, y)

 

# 保存PDF文档

pdf.SaveToFile("PDF超链接.pdf")

pdf.Close()

生成文件:

Python 删除PDF 文档中的超链接

如果要将PDF文档中已有的超链接一次性全部删除,可以参考以下步骤:

  1. 通过LoadFromFile()方法加载 PDF 文档。
  2. 循环遍历文档中的页面,并通过 PdfPageBase.AnnotationsWidget 属性获取每个页面上的注释。
  3. 循环遍历所有注释,检查每个注释是否为超链接。
  4. 如果是,则使用 PdfAnnotationCollection.Remove() 方法将其删除。
  5. 使用 PdfDocument.SaveToFile() 方法保存文档。

Python 代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

from spire.pdf import *

from spire.pdf.common import *

 

# 加载PDF文档

pdf = PdfDocument()

pdf.LoadFromFile("PDF超链接.pdf")

 

# 遍历文档中的所有页面

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文档

pdf.SaveToFile("删除PDF超链接.pdf")

pdf.Close()

如果仅需删除PDF某一页中的指定超链接,可以参考 以下代码:

1

2

3

# 删除第一页中的第一个超链接

page = pdf.Pages.get_Item(0)

page.AnnotationsWidget.RemoveAt(0)


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Python实现批量提取Excel数据
    在数据处理和分析的过程中,Excel 是一种广泛使用的数据存储格式。使用 Python 可以高效地从多个 Excel 文件中提取数据,进行汇总和分析。
  • Python在PDF中添加或删除超链接的操作

    Python在PDF中添加或删除超链接的操作
    PDF文件现已成为文档存储和分发的首选格式。然而,PDF文件的静态特性有时会限制其交互性。超链接是提高PDF文件互动性和用户体验的关键
  • 从基础到进阶带你玩转Python中的JSON
    在Python中处理JSON数据是日常开发中的常见任务之一。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,在Web开发、数据存储等多个
  • 基于Python开发一个Instant Messaging(IM)聊天工具
    在现代社会中,即时通讯工具已经成为人们日常沟通的重要工具。开发一个IM聊天工具不仅能够提高我们的编程技能,还能让我们更好地理解
  • 使用Python和Flask编写一个留言簿
    在本文中,我们将通过创建一个简单的留言簿应用来入门Flask。这个项目将帮助我们理解Flask的基本概念和功能,如路由、模板、表单处理等
  • python makedirs() 递归创建目录介绍
    在 Python 中,os.makedirs() 函数用于递归地创建目录。也就是说,它不仅会创建指定的目录,还会创建任何必要的父目录。这个函数在处理需要
  • 基于Python构建深度学习图像分类模型
    在人工智能的浪潮中,图像分类作为计算机视觉领域的基础任务之一,一直备受关注。随着深度学习技术的快速发展,基于Python的深度学习
  • python3.12.7降级到3.10.0的方法
    先将Python 3.12.7 降级到 3.10.0,然后将3.10.0版本设置为默认版本 步骤一: 要将 Python 从 3.12.7 降级到 3.10.0,你可以使用以下方法: 方法 1:从
  • Python数据可视化中常见的4种标注方式及示例

    Python数据可视化中常见的4种标注方式及示例
    常见的标注方式 文本标注 箭头标注 突出标注 趋势线标注 让我们通过Python实现来了解所有这些用于数据可视化的标注技术。 文本标注 文本
  • Python KeyError异常的原因及问题解决
    什么是 KeyError 异常? 在 Python 中,KeyError异常是内置异常之一,具体来说,KeyError是当试图获取字典中不存在的键时,引发的异常。作为参考
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计