Python Вставить изображение с пятого слайда - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть папка с изображениями, которые я вставляю в создаваемый файл PPTX. Приведенный ниже код вставляет изображения, начиная с первого слайда, но я хочу, чтобы он начал вставлять изображения с пятого слайда и далее. Я не могу найти решение, пожалуйста, помогите. Заранее спасибо.

def Generate_PPT(avg_plots):
    prs = Presentation() 
    blank_slide_layout = prs.slide_layouts[6] 

    for imagePath in (avg_plots):
        if (avg_plots.index(imagePath)) % 2 == 0:
            slide = prs.slides.add_slide(blank_slide_layout)
            left = top = Inches(1)
            pic = slide.shapes.add_picture(imagePath, left, top) 

    prs.save(os.path.join(root,folder1,'PPT_plots.pptx'))

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Один из способов добиться этого - создать первые четыре слайда перед вводом «вставки изображения». L oop:

def Generate_PPT(avg_plots):
    prs = Presentation() 
    blank_slide_layout = prs.slide_layouts[6] 

    # --- add four blank slides such that first image appears on fifth slide ---
    for _ in range(4):
        prs.slides.add_slide(blank_slide_layout)

    # --- then image insertion proceeds from fifth slide onward ---
    for imagePath in (avg_plots):
        if (avg_plots.index(imagePath)) % 2 == 0:
            slide = prs.slides.add_slide(blank_slide_layout)
            left = top = Inches(1)
            pic = slide.shapes.add_picture(imagePath, left, top) 

    prs.save(os.path.join(root, folder1, 'PPT_plots.pptx'))
1 голос
/ 04 февраля 2020

Пожалуйста, обратитесь по ссылке ниже: https://python-pptx.readthedocs.io/en/latest/api/slides.html

Чтобы получить пятый слайд, используйте метод get, как показано ниже.

slide=prs.slides.get(4)

Пожалуйста, используйте код ниже , если вы хотите сгенерировать новый ppt и добавить изображения с 5-го слайда.

            prs = Presentation()
            blank_slide_layout = prs.slide_layouts[6]
            for x in range(5):
                slide = prs.slides.add_slide(blank_slide_layout) ## 5 slides got created
            print(prs.slides.index(slide)) # this will print 4, index for the last slide
            slide = prs.slides.get(4) #use this to access slide 5                                             
            # do the changes to the slide (add image) 
            prs.save(os.path.join('PPT_plots.pptx'))

...