pythonpptx中图片的占位符

2024-04-20 12:06:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用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...

如何添加占位符并跳转到它们。 手册对我没有帮助


Tags: fromimportaddtop图片positionpresentationleft
1条回答
网友
1楼 · 发布于 2024-04-20 12:06:36

首先添加(空白)幻灯片,然后反复浏览以添加图片

大致如下:

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)
    ...

如果您愿意,您可以使用嵌套循环更紧凑地完成第二部分,但首先将其作为三个单独的子句来工作可能是明智的,这样您就可以清楚地看到在每个嵌套迭代中需要更改什么

相关问题 更多 >