Python 操作PDF图片 – 添加、替换、删除PDF中的图片

PDF文件中的图片可以丰富文档内容,提升用户的阅读体验。除了在PDF中添加图片外,有时也需要替换或删除其中的图片,以改进视觉效果或更新信息。文本将提供以下三个示例,介绍如何使用Python 操作PDF文件中的图片:

目录

[1. 使用 Python 在PDF中添加图片](#1. 使用 Python 在PDF中添加图片)

[2.使用 Python 替换PDF中的图片](#2.使用 Python 替换PDF中的图片)

[3. 使用 Python 删除PDF中的图片](#3. 使用 Python 删除PDF中的图片)


首先,我们需要安装一个名为Spire.PDF for Python 的Python库,它可以用于处理PDF文件。可以使用pip来安装该库:

pip install Spire.PDF

1. 使用Python在PDF中添加图片

Spire.PDF for Python库提供了 PdfPageBase.Canvas.DrawImage() 方法,可用于在PDF页面的指定坐标处绘制加载的图片。实现代码如下:

python 复制代码
from spire.pdf.common import *
from spire.pdf import *

# 创建PdfDocument对象
pdf = PdfDocument()

# 添加一页
page = pdf.Pages.Add()

# 加载一张图片
image = PdfImage.FromFile("图片1.jpeg")

# 指定图片尺寸
width = image.Width * 0.70
height = image.Height * 0.70

# 指定图片所在的XY坐标
x = 60.0
y = 30.0

# 将图片绘制在页面指定位置
page.Canvas.DrawImage(image, x, y, width, height)

# 保存PDF文件
pdf.SaveToFile("PDF添加图片.pdf", FileFormat.PDF)

生成文件:

2.使用Python替换PDF中的图片

要用新图片替换PDF中的图片,可以使用 PdfPageBase.ReplaceImage() 方法。实现代码如下:

python 复制代码
from spire.pdf.common import *
from spire.pdf import *

# 加载PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("PDF添加图片.pdf")

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

# 加载一张图片
image = PdfImage.FromFile("图片2.png")

# 获取页面中的图片信息
imageInfo = page.ImagesInfo

# 用加载的新图片替换页面中第一张图片
page.ReplaceImage(imageInfo[0].Index, image)

# 保存PDF文件
pdf.SaveToFile("替换图片.pdf", FileFormat.PDF)

效果图:

3. 使用Python删除PDF中的图片

要删除指定的图片可以使用 PdfPageBase.DeleteImage(index)。 实现代码如下:

python 复制代码
from spire.pdf.common import *
from spire.pdf import *

# 加载PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("PDF添加图片.pdf")

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

# 删除该页中的第一张图片
page.DeleteImage(0)

# 保存PDF文件
pdf.SaveToFile("删除图片.pdf", FileFormat.PDF)

Spire.PDF for Python库提供了相应的接口来添加、替换、删除PDF图片,通过运行上面3段示例代码即可实现对应的操作。如想了解更多Python处理PDF文档的示例,可查看:

Spire.PDF for Python 中文教程Spire.PDF for Python 是一款完全独立的 PDF 开发组件,用于在 Python 程序中创建、读取、编辑、转换和保存 PDF 文档。开发人员可以使用 Spire.PDF for Python 类库来新建 PDF 文档或对现有的 PDF 文档进行处理,不需要任何第三方工具。同时,该组...https://www.e-iceblue.cn/pdfforpython/spire-pdf-for-python-program-guide-content.html

去除红色水印:

申请免费临时授权文件创建、编辑、转换和打印 Office:Excel (xls,xlsx), Word (doc,docx), PowerPoint, PDF 及 Barcode https://www.e-iceblue.cn/misc/temporary-license.html

相关推荐
昵称画2 小时前
交接班记录电子化:三班之间的信息不漏
开发语言·数据库·人工智能·低代码·php
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+SDXL批量生成“潮汕英歌舞不倒翁”IP | 角色一致性与多场景融合方案,附完整代码
开发语言·人工智能·python·prompt·aigc
传奇开心果编程2 小时前
【Rust入门练中学】第6课:结构体与方法
开发语言·rust·结构体·编程语言理论·结构体方法·编程通用语言
Linux_cy2 小时前
服务器管理工具哪个好用?我用了七八个
运维·服务器·javascript·python·ssh·面板·gmssh
MoRanzhi12033 小时前
第6篇(下)· 使用 PyQt5 实现 2048 高性能计算版:统一运行控制与跨模式安全交接
python·pyqt·进程管理·状态机·软件架构·并发控制·数据一致性
code tsunami3 小时前
【无标题】
开发语言·python
CodeGL3 小时前
10、Python基础之进程和线程
开发语言·python
TechWayfarer4 小时前
PHP漏洞被利用,怎么揪出攻击IP?
开发语言·python·tcp/ip·网络安全·php
2601_967980115 小时前
Python列表操作方法详解
python·数据类型·修改·列表操作·功能汇总
卡卡~~6 小时前
“101计划”核心课程实践教材《数据实验结构指导-C++语言版》题目集
开发语言·c++·学习·算法