安装 https://www.jianshu.com/p/ecc187c2a46a
官方文档 https://python-pptx.readthedocs.io/en/latest/
视频教程 https://space.bilibili.com/1967947129/channel/seriesdetail?sid=1890530
使用:
https://blog.csdn.net/pdcfighting/article/details/106678358
https://blog.csdn.net/qq_45464895/article/details/123321152
https://blog.csdn.net/Newyee/article/details/105332116
https://blog.csdn.net/hwwaizs/article/details/124209892
https://zhuanlan.zhihu.com/p/342573671
PPT结构说明:
每一张幻灯片叫做:slide幻灯片页;每一页中的每一个方框,叫做一个shape;每一个方框中的每一段内容,叫做Paragraph段落。;块儿run:属于每个段落中的概念
如上概念,对应到ppt包中如下:
实例化prs对象,ppt对象:
0.prs=Presentation() # 可以带参数,参数为ppt模板路径path,
1.获取slide对象:prs.slides 有多少页,就有多少个slide,一个prs有多个slide
2.获取shape形状:slide.shapes 一个slide有多个shape
3.判断每个shpae是否存在文字:shape.has_text_frame
4.获取文字框对象:shape.text_frame
5.获取文字框对象内容:shape.text_frame.text 也可以直接赋值。
prs对象就是一棵树,基本的层次关系如下:
Presentation -> slide_masters -> slide_layouts
Presentation -> slides -> shapes -> placeholders | note | text_frame ...
概念:
Presentation 演示文稿构造对象
slide_masters 幻灯片母版 (一个演示文件可以具有多个幻灯片母版) -
slide_layouts 幻灯片布局(属于母版而非 prs)
slides 幻灯片对象组,默认指向第一页 add_slide
shapes 形状,类似于 ps 中的画布,每个 shap (如 table) 相当于图层 add_shape
placeholders... 占位符,字典辅助类,每一个方框中都可以输入文字,或者输入其他类型的内容,该方框就叫占位符Placeholder
根据placeholdes获取一页幻灯片中的元素,slide.shapes.placeholders,使用该函数返回的对象下标访问.text 赋值,该下标的访问个数,是通过slide_layouts[*]定义时,所产生的。比如设置0,则有一个title和一个subtitle ,可以通过slide.shpaes.title 访问title对象,并调用title对象的text属性 赋值,达到设置幻灯片标题的目的。
幻灯片布局
(版式,在windows ppt中有对应的下拉框) prs.slide_layouts[0],根据参数的不同,设置不同的幻灯片布局,传入0获取第一个版式(也就是幻灯片布局)
0 -> title and subtitle 标题和副标题
1 -> title and content 标题和内容
2 -> section header 标题
3 -> two content 一个标题,两个内容
4 -> Comparison 一个标题,两个副标题,两个内容
5 -> Title only 仅标题
6 -> Blank 空白
7 -> Content with caption
8 -> Pic with caption 带标题的图片
如下两种方式等价。
prs = Presentation()
prs.slide_masters[0].slide_layouts[0]
prs.slide_layouts[0]
。。。。。