pptx批量导入图片 并每页一张图,Python将图片放到ppt中
大家好,本文主要讲python实现pptx批量插入图片到PPT中。感兴趣的同学过来看看,如果对你有帮助记得收藏。
00-1010项目背景、基础、亿万细节、最终代码、项目成果总结
目录
结果实验中拍摄了大量图片。如果想按顺序组合排版,简单的办法就是把图片插入PPT进行排版。但是PPT批量插入图片后,顺序就乱了,图片名称也不显示了。单独调整每张图片的位置和大小比较费时费力,所以想到用工具进行批量操作。以前学习python自动化办公模块。相对来说,python也是一门简单易用的语言。该项目预计不会花费太多精力,所以我尝试学习和实践它。(非专业学习笔记分享,希望大家多多指导!)
数据为16组实验,每组实验重复两次,共32张图片,都是正方形。
命名为:
1.png、1-5.png、2.png、2-5.png……16.png、16-5.png
应该严格按照顺序安排。
项目背景
固定
pip安装python-pptx
依靠
Python 2.6、2.7、3.3、3.4或3.6
什么是
枕头
XlsxWriter(使用图表功能)
基本操作代码概述:
导入集合. abc
从pptx导入演示,util
Prs=Presentation() #实例化一个ppt演示对象
blank _ slide _ layout=PRS . slide _ layouts[6]#实例化一个空白模板
slide=PRS . slides . Add _ slide(blank _ slide _ layout)#向文件添加空白页
Img_path=。/1.png #图像路径
#设置图片的位置和大小
左=util。厘米(0)
top=util。厘米(0)
宽度=util。厘米(4)
height=util。厘米(4)
#在页面中插入图片
pic=slide . shapes . add _ picture(img _ path,left,top,width,height)
Prs.save(自动生成的ppt.pptx) #另存为文件
第一步:创建PPT文件
从pptx导入演示文稿
Prs=Presentation() #实例化一个ppt演示对象
#中间添加具体操作的内容
Prs.save(自动生成的ppt.pptx) #另存为文件
这时踩了第一个坑,执行结果报错:属性错误:模块集合没有属性容器
原因是Python 3.10版支持问题,开头多导入一个依赖包collections.abc就可以解决。
导入集合. abc
步骤2:创建一个新页面。
Prs.slide_layouts是Presentation对象的默认页面模板,它是一个11的数组。可以通过一个循环查看所有默认的页面模板。
prs.slides.add_slide()方法可以将模板页面添加到文件中。默认情况下,第7个模板是一个空白页。
n=长度(prs.slide_layouts)
打印(页面模板数为: ,n)
对于范围(n):内的I
slide _ layout=PRS . slide _ layouts[I]#实例化模板页面
slide=PRS . slides . Add _ slide(slide _ layout)#向文件中添加模板页面
添加单个空白页只需要以下代码:
ush:py;">blank_slide_layout = prs.slide_layouts[6] # 实例化空白模板页面
slide = prs.slides.add_slide(blank_slide_layout) # 向文件中添加空白页面
第三步:添加图片
添加图片可使用如下方法,
pic = slide.shapes.add_picture(img_path, left, top, width, height)
位置和大小属性默认为英制单位EMU,可转化为厘米,用如下方法定义:
from pptx import util
此时便可得到一个在左上角插入图片的页面。
加亿点点细节
1. 改变幻灯片页面大小
默认生成的页面大小为 4 : 3 大小的页面画布,可通过修改Presentation对象的属性改变大小,如下:
prs.slide_width = util.Cm(32)
2. 根据需要排列图片位置
# 读取图片列表
最终代码
import collections.abc
项目结果图
总结
到此这篇关于python实现pptx批量向PPT中插入图片的文章就介绍到这了,更多相关python pptx向PPT插图片内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。