Python实现在PPT中添加或删除图片

 更新时间:2025年04月28日 10:33:59   作者:Eiceblue  
在数字化办公时代,Python已成为自动化处理Office文档的首选工具,本文将介绍如何使用免费Python库在PPT文档中添加图片,或删除PPT文档中的图片,需要的可以参考下

在数字化办公时代,Python已成为自动化处理Office文档的首选工具。针对PowerPoint图片管理,使用Python能实现批量操作多个PPT文件,并减少人工操作的失误。本文将介绍如何使用免费Python库在PPT文档中添加图片,或删除PPT文档中的图片

环境准备

安装 Free Spire.Presentation for Python库。

pip install Spire.Presentation.Free

Python 在PPT幻灯片中添加图片

使用免费Python库提供的 ISlide.Shapes.AppendEmbedImageByImageData() 方法,可实现在指定幻灯片中添加图片。操作如下:

创建PPT演示文档,并通过 Presentation.Slides[index] 属性获取其中指定幻灯片。

加载一张图片,然后指定图片在幻灯片上的位置。

通过 ISlide.Shapes.AppendEmbedImageByPath() 方法在幻灯片中添加图片。

使用 Presentation.SaveToFile() 方法保存生成的演示文稿。

Python代码:

from spire.presentation.common import *
import math
from spire.presentation import *

# 创建PPT演示文稿
presentation = Presentation()

# 获取第一张幻灯片
slide = presentation.Slides[0]

# 加载一张图片
imageFile = "logo.png"

# 指定图片在幻灯片中的位置
left = math.trunc(presentation.SlideSize.Size.Width / float(2)) -100
rect1 = RectangleF.FromLTRB (left, 120, 180 + left, 300)

# 在幻灯片上添加嵌入式图片
image = slide.Shapes.AppendEmbedImageByPath (ShapeType.Rectangle, imageFile, rect1)

# 设置图片的外框线为无填充效果
image.Line.FillType = FillFormatType.none

# 保存PPT文档
presentation.SaveToFile("PPT图片.pptx", FileFormat.Pptx2016)
presentation.Dispose()

生成文档:

Python 删除PPT幻灯片中的图片

要删除PowerPoint幻灯片中的所有图片则需要先遍历幻灯片中的每一个形状,找出形状中的图片类型 (SlidePicture),再通过 ISlide.Shapes.Remove(Index) 来删除图片。操作如下:

使用 Presentation.LoadFromFile() 方法加载PPT文档。

通过 Presentation.Slides[index] 属性获取指定幻灯片。

使用 for 循环来遍历指定幻灯片上的所有形状。

判断当前形状是否是为 SlidePicture 类型(图片),如果是,则使用 ISlide.Shapes.Remove(Index) 来删除图片。

使用 Presentation.SaveToFile() 方法保存生成的演示文稿。

Python代码:

from spire.presentation.common import *
from spire.presentation import *

# 加载PPT文件
ppt = Presentation()
ppt.LoadFromFile("PPT图片.pptx")

# 获取第一张幻灯片
slide = ppt.Slides[0]

# 遍历幻灯片中的所有形状
for i in range(slide.Shapes.Count - 1, -1, -1):
   
    # 判断当前形状是否为图片(SlidePicture)
    if isinstance(slide.Shapes[i], SlidePicture):
       
        # 如果是图片,则从幻灯片中移除该形状
        slide.Shapes.RemoveAt(i)

# 保存结果文件
ppt.SaveToFile("删除PPT图片.pptx", FileFormat.Pptx2016)
ppt.Dispose()

方法补充

Python向PPT中批量插入图片

1.用python-pptx模块

实现的过程也很简单,主要是导入指定模块,利用os来遍历所有的图片,然后创建ppt对象,插入空白的slide,然后通过循环的办法把图片插入到幻灯片中。根据图片距离左、上、高度来最终确定其位置。

from pptx import Presentation
from pptx.util import Inches
import os
 
# 获取当前目录下所有的png文件
pics = [file for file in os.listdir(".") if file.endswith(".png")]
 
# 创建一个演示文稿对象
prs = Presentation()
 
for pic in pics:
    # 添加一张新幻灯片
    slide_layout = prs.slide_layouts[5]  # 使用空白布局
    slide = prs.slides.add_slide(slide_layout)
 
    # 添加图片到幻灯片
    img_path = pic
    left = Inches(5.8)
    top = Inches(2)
    height = Inches(3.5)
    slide.shapes.add_picture(img_path, left, top, height=height)
 
# 保存演示文稿
prs.save('add-image-in-presentation.pptx')

2.利用Aspose.slides这个模块

Aspose模块的办法和python-pptx的类似。过程也是首先遍历得到图片的地址,然后创建PPT对象,通过添加空白slide,把图片插入的办法来实现。

import aspose.slides as slides
import os
pics = [file for file in os.listdir(".") if file.endswith(".png")]
 
    # 创建演示文稿
with slides.Presentation() as pres:
    # 访问第一张幻灯片
    for num,pic in enumerate(pics,0):
        
        slide = pres.slides.add_empty_slide(pres.layout_slides[0])
 
        # 从文件加载图像
        with open(pic, "rb") as in_file:
          
            # 将图像添加到演示文稿的图像集
            image = pres.images.add_image(in_file)
 
            # 将图像添加到幻灯片
            slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 20, 20, 100, 100, image)
 
    # 保存演示文稿
    pres.save("add-image-in-presentation.pptx", slides.export.SaveFormat.PPTX)

slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 20, 20, 100, 100, image)这行代码中,前2个数是是图片距离左侧和右侧的距离。

到此这篇关于Python实现在PPT中添加或删除图片的文章就介绍到这了,更多相关Python PPT图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入解析Python中的lambda表达式的用法

    深入解析Python中的lambda表达式的用法

    这篇文章主要介绍了深入解析Python中的lambda表达式的用法,包括其与def之间的区别,需要的朋友可以参考下
    2015-08-08
  • Python中作用域的规则与应用

    Python中作用域的规则与应用

    在 Python 编程中,作用域(Scope) 是指一个变量可以被访问和引用的范围,这篇文章主要为大家介绍了Python中作用域的规则与应用的相关知识,需要的可以了解下
    2025-01-01
  • Flask  使用Gunicorn部署服务介绍

    Flask  使用Gunicorn部署服务介绍

    这篇文章主要分享了 Flask  使用Gunicorn部署服务介绍,Flask 虽然自带 Web 服务器,但是该服务器性能较低,是单进程单线程模型,原本是供开发测试使用。所以我们在生产环境中需要使用 Gunicorn 这样高性能服务器部署Flask服务,想了解更多内容,请参考下面详细内容
    2021-11-11
  • python以环状形式组合排列图片并输出的方法

    python以环状形式组合排列图片并输出的方法

    这篇文章主要介绍了python以环状形式组合排列图片并输出的方法,涉及Python使用pil库操作图片的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 一文分享Python中五大高频使用的基础操作

    一文分享Python中五大高频使用的基础操作

    作为一个常年和 Python 打交道的 搬砖人,我发现很多新手甚至老手,都会忽略一些基础但超实用的小技巧,今天就来分享几个日常高频使用的 Python 基础操作吧
    2026-01-01
  • pycharm中出现no module named xlwt的原因及解决

    pycharm中出现no module named xlwt的原因及解决

    这篇文章主要介绍了pycharm中出现no module named xlwt的原因及解决方案,具有很好的参考价值,希望对大家有所帮助。
    2023-05-05
  • Python借助with语句实现代码段只执行有限次

    Python借助with语句实现代码段只执行有限次

    这篇文章主要介绍了Python借助with语句实现代码段只执行有限次,首先要定义一个能够在with语句中使用的类实现enter和exit,下文详细介绍需要的小伙伴可以参考一下
    2022-03-03
  • Python学习笔记之open()函数打开文件路径报错问题

    Python学习笔记之open()函数打开文件路径报错问题

    这篇文章主要介绍了Python学习笔记之open()函数打开文件路径报错问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • python光学仿真相速度和群速度计算理解学习

    python光学仿真相速度和群速度计算理解学习

    从物理学的机制出发,波动模型相对于光线模型,显然更加接近光的本质;但是从物理学的发展来说,波动光学旨在解决几何光学无法解决的问题,可谓光线模型的一种升级
    2021-10-10
  • 你需要掌握的20个Python常用技巧

    你需要掌握的20个Python常用技巧

    Python的可读性和简单性是其广受欢迎的两大原因,本文介绍20个常用的Python技巧来提高代码的可读性,并能帮助你节省大量时间,需要的可以参考一下
    2022-02-02

最新评论