![](/img/trans.png)
[英]Python-PPTX: KeyError: 'no placeholder on this slide with idx == 1'
[英]Placeholder for pictures in python-pptx
我想用 python-pptx 在每张幻灯片上连续 3 张图片进行演示。
from pptx import Presentation
from pptx.util import Inches
height = Inches(3) #size
top = Inches(0) #y-position
img = 'image001.png'
prs = Presentation() #create presentation
blank_slide_layout = prs.slide_layouts[6] #define side layout
for j in range(0,5):
slide = prs.slides.add_slide(blank_slide_layout) #add slide
left = Inches(0) #x-position
for i in range(0,3):
pic = slide.shapes.add_picture(img, left, top, height=height)
left = left+height
prs.save('test.pptx')
这在这里有效,但我想了解占位符。 我需要首先在每张幻灯片上填充第一张(左)图片,然后跳回第一张幻灯片和所有第二张(中间)图片,第三列也是如此,因为我正在从 txt 文件加载图片。
txt文件看起来像
pic1a
pic2a
pic3a
pic1b
pic2b
...
我需要演示文稿中的图片
pic1a pic1b pic1c
pic2a..
pic3a...
我如何添加占位符并跳转到它们。 手册对我没有帮助。
首先添加您的(空白)幻灯片,然后反复遍历它们以添加图片。
大致如下:
for _ in range(3):
slides.add_slide(blank_slide_layout)
left = first_left
for i in range(3):
pic = slide[i].shapes.add_picture(img, left, top, height=height)
...
left = middle_left
for i in range(3):
pic = slide[i].shapes.add_picture(img, left, top, height=height)
...
left = last_left
for i in range(3):
pic = slide[i].shapes.add_picture(img, left, top, height=height)
...
如果您愿意,您可以使用嵌套循环更紧凑地完成第二部分,但首先将其作为三个单独的子句工作可能是明智的,这样您就可以清楚地看到每个嵌套迭代需要更改的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.