通过Python的pptx库操作ppt-替换文本和图片-批量生成任意自定义图片

news2024/11/15 15:26:02

通过Python的pptx库操作ppt-替换文本和图片-批量生成任意自定义图片

作者:虚坏叔叔
博客:https://xuhss.com

早餐店不会开到晚上,想吃的人早就来了!😄

在这里插入图片描述

一、前言

这是一个全部的脚本,我们知道,ppt有很多个模板,每个模板都有自己设计的精美的样式。

那么,如果我们可以替换里面的文字和图片,并保留之前的精美的样式。

结合市面上各种精美的ppt模板,就可以通过程序批量生成任何想要的精美图片了。有了图片可以批量根据这些图片生成视频。用于各种自媒体操作。

二、实现流程

要实现这个功能,分为以下几个步骤

2.1复制模板

首先 手头上有一个模板,我们要基于这个模板来生成图片,就需要复制模板

# 复制ppt模板
copied_slide = duplicate_ppt(prs, 0)

def duplicate_ppt(pres,index):
    template = pres.slides[index]
    blank_slide_layout = pres.slide_layouts[index]
    copied_slide = pres.slides.add_slide(blank_slide_layout)

2.2 替换文本

复制完成后的ppt模板,需要替换里面的文字,就可以遍历所有的slide里面的shape,找到文字批量替换。

这里的文字是预先在模板里固定的,根据固定的文字进行替换

# 替换ppt文本
search_str = '性能探测器'
repl_str = 'PPT啦qqqqqq'
ReplaceSlideText(copied_slide, search_str=search_str, repl_str=repl_str)

2.3 替换图片

复制完成后的ppt模板,需要替换里面的图片,每个图片都有自己的指纹,通过指纹找到旧的图片,然后替换为另一个图片。

这里的图片是预先在模板里固定的,根据固定的图片进行替换

# 替换ppt图片
ReplaceSlidePic(copied_slide, r'D:\自动化\newpic.png', r'D:\自动化\oldpic.png')

2.4 删除首页ppt模板

由于复制的模板里面,存在一个模板页面,拷贝的时候,需要将多余的首页模板删除掉

# 删除首页模板ppt
DeleteSlide(prs, 0)

2.5 保存转换后的ppt

替换完成后,就需要将替换后的ppt保存下来

# 保存ppt
path = r'D:\自动化\result.pptx'
prs.save(path)

2.6 转换成图片

convert_ppts_to_imgs(path)

三、所有代码及测试文件下载

代码在windows能够正常运行。有基础的Python能力就可以跑起来。

文件整体如下:

在这里插入图片描述

3.1ReplacePPT2Png.py

包含了所有的py代码

3.2 课件.pptx

是ppt模板,可以换成自己的ppt模板

3.3 result.pptx

是替换的模板,最后基于这个模板导出图片

3.4 oldpic.png newpic.png

oldpic是模板中的图片, newpic是你要替换的图片

3.5 result文件夹

存放最后导出的图片

在这里插入图片描述

项目下载地址

https://download.csdn.net/download/huangbangqing12/87412249

总结

最后的最后
由本人水平所限,难免有错误以及不足之处, 屏幕前的靓仔靓女们 如有发现,恳请指出!

最后,谢谢你看到这里,谢谢你认真对待我的努力,希望这篇博客对你有所帮助!

你轻轻地点了个赞,那将在我的心里世界增添一颗明亮而耀眼的星!

💬 往期优质文章分享

  • C++ QT结合FFmpeg实战开发视频播放器-01环境的安装和项目部署
  • 解决QT问题:运行qmake:Project ERROR: Cannot run compiler ‘cl‘. Output:
  • 解决安装QT后MSVC2015 64bit配置无编译器和调试器问题
  • Qt中的套件提示no complier set in kit和no debugger,出现黄色感叹号问题解决(MSVC2017)
  • Python+selenium 自动化 - 实现自动导入、上传外部文件(不弹出windows窗口)

🚀 优质教程分享 🚀

  • 🎄如果感觉文章看完了不过瘾,可以来我的其他 专栏 看一下哦~
  • 🎄比如以下几个专栏:Python实战微信订餐小程序、Python量化交易实战、C++ QT实战类项目 和 算法学习专栏
  • 🎄可以学习更多的关于C++/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦!
学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战 💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
❤️ C++ QT结合FFmpeg实战开发视频播放器❤️难度偏高分享学习QT成品的视频播放器源码,需要有扎实的C++知识!
💚 游戏爱好者九万人社区💚互助/吹水九万人游戏爱好者社区,聊天互助,白嫖奖品
💙 Python零基础到入门 💙Python初学者针对没有经过系统学习的小伙伴,核心目的就是让我们能够快速学习Python的知识以达到入门

🚀 资料白嫖,温馨提示 🚀

关注下面卡片即刻获取更多编程知识,包括各种语言学习资料,上千套PPT模板和各种游戏源码素材等等资料。更多内容可自行查看哦!

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/197266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里巴巴最全Java、架构师、大数据、算法PPT技术栈图册

我只截图不说话,PPT大全,氛围研发篇、算法篇、大数据、Java后端架构!除了大家熟悉的交易、支付场景外,支撑起阿里双十一交易1682亿元的“超级工程”其实包括以下但不限于客服、搜索、推荐、广告、库存、物流、云计算等。 Java核心…

第二章 Linux系统安装

第一节 安装计划 基本思路是使用VMWare这样的虚拟机软件创建一个“虚拟计算机”,在虚拟机上安装Linux系统。 安装vm软件通过vm软件来创建一个虚拟机空间通过vm软件来在创建好的虚拟空间上,安装我们的Centos操作系统使用Centos 第二节 vmware下载安装 和…

python-实现保留3位有效数字(四舍六入五成双规则)

项目场景: 实现保留3位有效数字(四舍六入五成双规则) 问题描述 输入:输出: 1234 123412 12.04 4.000.2 0.2000.32 0.3201.3 1.301.235 1.241.245 1.241.2451 1.25示例分析: 解决代码: from de…

jvm启动流程以及自定义加载器

类加载运行过程,当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM。public class Math {public static final int initData 666;public static final User user new User();public int compute() {// 一个方法对应…

【C++】对象与类

【C】对象与类 文章目录【C】对象与类1、定义1.1 对象的定义1.2 类的定义2、对象与类的创建2.1 类的创建2.2 对象的创建3、封装3.1 访问限定符3.2 对封装的解释4、类的实例化5、类、对象大小6、this指针6.1 this指针概念6.2 this指针特点1、定义 1.1 对象的定义 现实世界对对…

写哪个IB科目的EE最易得A?

综合了IB论坛上学生的建议,根据IB毕业生们的看法: E同学:选择你感兴趣的科目写EE。 R同学:我推荐写IB英语EE,在我看来,英语很容易找到你感兴趣的内容,因为英语 EE 适用于诸多的不同主题。我觉得…

录制PPT课件哪个录屏软件好?这3款值得收藏

使用PPT课件进行教学,不仅可以让抽象的知识具体化,还可以让课堂变得更加生动有趣。在制作视频课程时,需要对PPT课件进行录制,那你知道录制PPT课件哪个录屏软件好吗?今天小编就给大家介绍3款值得收藏的录屏软件&#xf…

为什么GIF文件是图像文件而不是视频文件?(GIF文件格式详解)

今天整理硬盘的时候想到一个问题:GIF 是放在静态图像文件里还是视频文件里? 因为放视频里吧,GIF 的分类是静态图像,而且由图像组成;放图像里吧,它又会动。 然后我就开始想:GIF 会动但为什么被归…

分享113个图片切换JS特效,总有一款适合您

分享113个图片切换JS特效,总有一款适合您 113个图片切换JS特效下载链接:https://pan.baidu.com/s/1NNSP-DMf3n0PeNbdNd8jEg?pwdsfwr 提取码:sfwr Python采集代码下载链接:https://wwgn.lanzoul.com/iKGwb0kye3wj jQuery中间…

Java基础学习笔记(十九)—— 多线程

多线程1 多线程相关概念2 多线程的实现方式2.1 继承Thread类2.2 实现Runnable接口2.3 实现Callable接口3 线程休眠4 线程优先级5 守护线程6 线程同步6.1 案例引入6.2 同步代码块6.3 同步方法6.4 Lock锁6.5 死锁1 多线程相关概念 并行与并发: 并行:在同…

未授权和敏感文件泄露

目前存在未授权访问漏洞的服务主要 包括:NFS、Samba、LDAP、Rsync、FTP、GitLab、Jenkins、 MongoDB、Redis、ZooKeeper、ElasticSearch、Memcache、CouchDB、 Docker、Solr、Hadoop等。 redis未授权 通过手工进行未授权访问验证,在安装Redis服务的Kal…

MATLAB 线性整数规划

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

oracle官网下载指定版本的jdk

文章目录前言下载JDK环境变量前言 oracle官网下载jdk,如果是想下载指定版本的,总是提示需要你登录。如何解决呢? 下载JDK oracle官网 https://www.oracle.com 或者直达此页 https://www.oracle.com/java/technologies/downloads/archive…

springboot相关

2023.2.3 springboot的示例sagan涉及到很多软件技术,运行这个示例在Windows 7下遇到问题。将Windows 7重装为Windows 10专业版。下载了node-v18.14.0-x64.msi,安装node时可以选择安装相关的软件,例如python 3.11.0。下载python 3.11.0太慢了…

07、微服务组件Seata

1、事务简介 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中,一个事务由一组SQL语句组成。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(ato…

正则表达式记录

正则用途:分割 查找 匹配 替换 1 * ?的区别 *代表匹配任意次, 包括0,1,多次代表匹配最少一次, 1或者多次?代表匹配最多1次,0,1次 2 单次边界(\b和\B) 2.1 定义 首先说一下零宽: 只匹配位置, 不匹配字符, 然后我们再来谈单词边界: 何谓单词? 在JS中, 单词的定义就是\w也…

Python中的字典

1. 前言 字典,是Python中唯一实现了映射关系的内置类型。 2.映射关系 摩斯密码就是通过映射关系来实现的。 这里的字母 A 和 .- 就是其中的一对映射关系,字母 U 和 …- 又是另一对映射关系,那么有了这张表,破解莫斯密码就不再…

矩阵相关的性质

矩阵相关的计算性质1.矩阵的某一行*一个常数2.矩阵的一行加(减)另一行3.交换矩阵的两行两个未知数两个方程线程方程组解的结构以几何的角度查看矩阵的方式初等矩阵采用初等变换的方式在矩阵的元素中进行操作 相关的性能的变化采用点阵的乘法,在矩阵的维度进行处理将…

DeepLabV3+:ASPP加强特征提取网络的搭建

目录 ASPP结构介绍 ASPP在代码中的构建 参考资料 ASPP结构介绍 ASPP:Atrous Spatial Pyramid Pooling,空洞空间卷积池化金字塔。 简单理解就是个至尊版池化层,其目的与普通的池化层一致,尽可能地去提取特征。 利用主干特征提取…

低代码开发——创新赋能企业办公模式转变

近年来,国内云计算高速发展、SAAS 软件模式快速普及、企业数字 化的需求增长等方面促进了低代码平台开发与应用的高速发展,使之成为继 RPA之后企业数字化转型的明星工具。如果说RPA 将线上流程自动化,那么低代码解决了更基础的问题&#xff…