Заполнитель для изображений в python -pptx - PullRequest
0 голосов
/ 27 мая 2020

Я хочу сделать презентацию с 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...

Как я могу добавить заполнители и перейти к ним. Мануал мне не помогает.

1 Ответ

0 голосов
/ 27 мая 2020

Сначала добавьте свои (пустые) слайды, затем несколько раз пролистайте их, чтобы добавить изображения.

Примерно так:

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

Если вы так склонны, вы можете сделать вторую часть более компактно с вложенным l oop, но может быть разумным сначала заставить его работать как три отдельных предложения, чтобы вы могли четко видеть, что нужно изменить на каждой из вложенных итераций.

...