先说两个结论:
- 对于主题不完全相同的页面,pptx 无法完全复制PPT页面,文字图片可以复制,但是背景之类的无法复制
- pptx 无法直接在指定页码或者指定页面后插入页面
今天做项目的时候,需要根据PPT模板使用python生成相应PPT,由于页面是不固定的,所以我们需要根据内容增加或删改页面。
最开始的想法是复制页面,然后查了很多资料,试了网上很多的代码,没有一份代码是可以做到完全的复制的,背景,文本框等的位置都不能完全做到复制(真的试了好多方法啊摔o(╥﹏╥)o)。
然后,想着那就使用母版,python 的pptx是可以根据母版生成PPT的,代码在下边,
python
prs = Presentation(base_path)
slide_layout = prs.slide_layouts[3] # 3是第四个母版页面
slide = prs.slides.add_slide(slide_layout) # 插入到末尾页
然后逐个元素填入需要的东西
备注:
这里还要提一嘴PowerPoint,这里主要是不太熟悉这个,里面好多东西都不懂,加之我最开拿到的模板是不完善的,需要调整,然后出现了我当时认为奇葩的问题:有的母版可以删除,有的不可以,并且PPT页面删除后母版也没了(!!!!),然后网上找了好久也没找到原因,然后我只能通过插入幻灯片母版,然后将上一个母版页面全部删除,这下子哪怕页面删除了,母版也不会消失了(O(∩_∩)O哈哈~)
然后,神奇的事又出现了,明明是复制过来的,但是颜色都变了,爆哭,然后又开始查资料,说是主题的问题,好吧!然后把原来的模板里面的主题保存了
再然后,这个主题会成为自定义主题,然后将主题应用一下,完美,颜色终于对了(喜大普奔),就是发现为啥这个主题那里有俩啊?不过问题不大不影响,不要纠结!
再再然后,额,母版不对了啊,突然多出来一堆,(暴风哭泣,真的要疯啊)。。。。。。。。。。。。。突然灵光一闪,是不是主题的原因啊,然后验证了一下,把多于的模板删除,然后会去看主题,就只剩下一个了,哈哈哈哈,原来主题是母版的合集。至此,问题终于解决了,可以回到我最初的目标了,根据模板生成PPT。