除了文本内容外,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 文件中添加图片
要在 PDF 页面中添加图片,可以使用 PdfPage.Canvas.DrawImage() 方法。具体步骤如下:
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.Pages.Add() 方法为文档添加页面。
- 使用 PdfImage.FromFile() 方法加载图片。
- 使用 PdfPageBase.Canvas.DrawImage() 方法在页面的指定位置绘制图片。
- 使用 PdfDocument.SaveToFile() 方法保存结果文档。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建PdfDocument对象
doc = PdfDocument()
# 设置页边距
doc.PageSettings.SetMargins(30.0, 30.0, 30.0, 30.0)
# 添加一页
page = doc.Pages.Add()
# 加载图片
image = PdfImage.FromFile("logo.png")
# 指定图片大小
width = image.Width * 0.50
height = image.Height * 0.50
# 在页面指定位置绘制图像
x = 10.0
y = 30.0
page.Canvas.DrawImage(image, x, y, width, height)
# 保存结果文件
doc.SaveToFile("添加图片.pdf", FileFormat.PDF)
Python 替换 PDF 文件中的图片
Spire.PDF for Python 提供了 PdfImageHelper 类来操作处理图片,要用新图片替换 PDF 中的已有图片,可以使用 PdfImageHelper.ReplaceImage() 方法。具体步骤如下:
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文档。
- 通过 PdfDocument.Pages[index] 属性获取特定页面。
- 使用 PdfImage.FromFile() 方法加载图片。
- 创建 PdfImageHelper 对象,并使用 PdfImageHelper.GetImagesInfo() 获取指定页面中的图片信息。
- 使用 PdfImageHelper.ReplaceImage() 方法用加载的图片替换页面中的现有图片。
- 使用 PdfDocument.SaveToFile() 方法保存结果文档。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文件
pdf.LoadFromFile("添加图片.pdf")
# 获取第一页
page = pdf.Pages[0]
# 加载图片
image = PdfImage.FromFile("img.png")
# 创建PdfImageHelper对象
imageHelper = PdfImageHelper()
# 通过PdfImageHelper获取页面中的图片信息
imageInfos = imageHelper.GetImagesInfo(page)
# 用加载的图片替换页面上的第一张图片
imageHelper.ReplaceImage(imageInfos[0], image)
# 保存结果文件
pdf.SaveToFile("替换图片.pdf", FileFormat.PDF)
# 对象释放
pdf.Close()
Python 删除 PDF 文件中的图片
PdfImageHelper.DeleteImage() 方法可以删除 PDF 页面中的指定图片。具体步骤如下:
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文档。
- 通过 PdfDocument.Pages[index] 属性获取特定页面。
- 创建 PdfImageHelper 对象,并使用 PdfImageHelper.GetImagesInfo() 获取指定页面中的图片信息。
- 使用 PdfImageHelper.DeleteImage() 方法删除页面中指定的图片。
- 使用 PdfDocument.SaveToFile() 方法保存结果文档。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文件
pdf.LoadFromFile("图片.pdf")
# 获取第一页
page = pdf.Pages[0]
# 创建PdfImageHelper对象
imageHelper = PdfImageHelper()
# 通过PdfImageHelper获取页面中的图片信息
imageInfos = imageHelper.GetImagesInfo(page)
# 删除页面中指定的图片
imageHelper.DeleteImage(imageInfos[0])
# 保存结果文件
pdf.SaveToFile("删除图片.pdf", FileFormat.PDF)
# 对象释放
pdf.Close()
Python 提取 PDF 文件中的图片
通过 PdfImageHelper.GetImagesInfo() 获取的图片也能轻松地提取保存出来。具体步骤如下:
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文档。
- 通过 PdfDocument.Pages[index] 属性获取特定页面。
- 创建 PdfImageHelper 对象,并使用 PdfImageHelper.GetImagesInfo() 获取指定页面中的图片信息。
- 通过获取的 PdfImageInfo 使用 PdfImageInfo.Image.Save() 方法保存图片。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文件
pdf.LoadFromFile("图片.pdf")
# 获取第一页
page = pdf.Pages[0]
# 创建PdfImageHelper对象
imageHelper = PdfImageHelper()
# 通过PdfImageHelper获取页面中的图片信息
imageInfos = imageHelper.GetImagesInfo(page)
# 遍历保存图片
for i in range(len(imageInfos)):
info = imageInfos.__getitem__(i)
fileName = "\\ExtractedImg-{0:d}.png".format(i)
info.Image.Save(fileName)
# 对象释放
pdf.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。