如何用Python向PPT中批量插入图片

办公自动化办公中,Python最大的优势是可以批量操作,省去了用户粘贴、复制、插入等繁琐的操作。经常做PPT的朋友都知道,把图片插入到PPT当中的固定位置是一个非常繁琐的操作,往往调整图片时耗费大量的时间和精力。如何能省时省力插入图片呢?今天我们来一起探索一下批量插入图片到PPT的三种办法。

一、手工操作

在WPS幻灯片中,通过插入------分页插图------再选择要插入的图片,就可以批量把图片插入到PPT当中,不过此时插入的位置默认是PPT的中间位置,就是说无法按照指定的位置插入。

最后的效果如下,每张图片都会居中显示:

二、用python-pptx模块

如果用Python的话,就可以批量插入,而且可以插入指定位置,这样可以大大节省插入的时间。

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

python 复制代码
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')

广告

三、利用Aspose.slides这个模块

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

python 复制代码
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个数是是图片距离左侧和右侧的距离。

四、学后总结

  1. 经过实验Python-pptx这个模块插入图片的速度更快,因此建议使用第二种方法。
  2. Aspose.slides这个模块比较大,而且是收费的,如果是免费的生成的PPT中有水印,还要去除才可以。
相关推荐
技术净胜9 小时前
Python 连接 MySQL 数据库步骤
数据库·python·mysql
xj7573065339 小时前
《python web开发 测试驱动方法》
开发语言·前端·python
叫我:松哥10 小时前
基于Flask框架开发的智能旅游推荐平台,采用复合推荐算法,支持管理员、导游、普通用户三种角色
python·自然语言处理·flask·旅游·数据可视化·推荐算法·关联规则
DO_Community10 小时前
Ubuntu服务器快速上手:初始配置与安全设置教程
服务器·安全·ubuntu
三宝盈科炜尊10 小时前
电阻的基础知识
服务器·开关电源·热敏电阻·压敏电阻·电阻·ptc热敏电阻
No0d1es10 小时前
2025年12月 GESP CCF编程能力等级认证Python四级真题
开发语言·python·青少年编程·等级考试·gesp·ccf
love530love10 小时前
EPGF 新手教程 13在 PyCharm(中文版 GUI)中创建 Hatch 项目环境,并把 Hatch 做成“项目自包含”(工具本地化为必做环节)
开发语言·ide·人工智能·windows·python·pycharm·hatch
看见繁华10 小时前
Linux 相关
linux·运维·服务器
效率客栈老秦10 小时前
Python Trae提示词开发实战(2):2026 最新 10个自动化批处理场景 + 完整代码
人工智能·python·ai·prompt·trae
IT 行者10 小时前
告别硬编码!Spring Boot 优雅实现 Controller 路径前缀统一管理
数据库·spring boot·python