首页 > 编程语言 >Python 在PDF中添加、替换、或删除图片

Python 在PDF中添加、替换、或删除图片

时间:2024-07-29 16:51:17浏览次数:16  
标签:Python spire 添加 pdf PDF page 图片

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

  1. Python 在PDF中添加图片
  2. 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页面的指定坐标处绘制加载的图片。实现代码如下:

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() 方法。实现代码如下:

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) 方法。 实现代码如下:

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文档的示例,可查看:https://www.e-iceblue.cn/pdfforpython/spire-pdf-for-python-program-guide-content.html

 

去除红色水印 -- 点击申请试用授权

标签:Python,spire,添加,pdf,PDF,page,图片
From: https://www.cnblogs.com/Yesi/p/18330439

相关文章

  • 学精python selenium自动化只要读完这一篇
    第一篇基础案例篇大牛测试出品,视频/代码项目案例请联系作者:2574674466前言:●内卷时代测试人员如何面对?逃避还是提高自己?●为什么要学习selenium?●内功如何修炼学习目标:●学会selenium环境搭建、不同浏览器驱动●虚拟环境与代码异常原因分析●十六大元素定位......
  • [附开题]flask框架的校园疫情安全管理系统设计与实现tsckj(源码+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景自新冠疫情全球爆发以来,校园作为高密度、高流动性的集体生活环境,其疫情防控工作面临着前所未有的挑战。学校师生众多,活动频繁,一旦发生疫情......
  • SCI一区级-python实现VMD-CNN-Transformer锂离子电池剩余寿命预测
    1. 基本介绍使用VMD结合皮尔逊相关系数实现对锂离子电池数据集去噪,消除数据中“容量再生问题”使用CNN-Transformer实现特征提取:利用卷积神经网络(CNN)进行特征提取。然后,利用改进的变压器模型来捕获时间序列中的固有相关性,并将其特征映射到未来的SOH值。采用迭代策略对每个......
  • Cmake配置Qt程序调用python库的配置方法
    在网上找了一些配置方法,最简单直接的是在cmake中加入如下语句:set(PYTHON_EXECUTABLE/Python/Python311/python.exe)include_directories("/PythonPython311/include")link_directories("/PythonPython311/libs")link_libraries(python3.lib)link_libraries(python311.lib)直......
  • VSCode 的 Python 扩展中更详细的属性提示
    假设我有一个对象args由parser.parse_args()返回,并且它应该具有像args.port=6001、args.seed=1234这样的属性。当我在VSCode中按args.时,port和seed不会显示在建议的属性列表中,因为这些属性可能会......
  • 编写用于关键字检测和按钮发送的 Python Telegram 机器人
    我需要帮助用Python为我的Telegram机器人编写代码。我有一个config.py文件,其中包含两个关键字列表:keywords和button_phrases。keywords-负责在单击时显示子按钮的按钮。Button_phrases-负责单击时打开链接的按钮。我需要机器人检查用户输入的文本并按以下顺......
  • 如何将图像添加到轴中的条形图(matplotlib)
    我想将如下所示的标志图像添加到我的条形图中:我尝试过AnnotationBbox,但显示为方形轮廓。谁能告诉我如何完全按照上图实现此目的?编辑:下面是我的代码ax.barh(y=y,width=values,color=r,height=0.8)height=0.8fori,(value,url)inenume......
  • Python monorepo 打包,使用 Poetry
    我想将我的Python源代码组织到一个单一存储库中,具有以下基本结构:projectrootdir-libraryone-pyproject.toml-README-src/orgname/libraryone-__init__.py-somemodule.py-webapi-pyproject.toml-README-src/organa......
  • 如何使用Python AST给表达式a == b添加括号?
    请问,有谁知道如何使用PythonAST在代码中为a==b这样的表达式添加括号?我尝试过重写visit_Compare,但是ast.unparse中的delimit_if自动删除了我添加的括号,因为优先级a==b的值更高。你说的对,直接使用ast.unparse会因为优先级问题导致添加的括号被移除。为了解......
  • 使用 powershell 或 python 从网页列出公司名称
    我希望使用PowerShell或python仅列出URL中的公司名称:https://www.moneycontrol.com/markets/earnings/results-calendar/?activeDate=2024-07-29下面是我的python脚本用于获取网页的结构:importrequestsfrombs4importBeautifulSoup#URLo......