Как добавить слайд в середине презентации, используя python-pptx?

У меня есть template.pptx, всего 10 слайдов. Я хочу скопировать слайд / макет слайда 2 и добавить новый слайд после 2, между 2 и 3.

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

prs = Presentation('C:\Documents\template.pptx')
slide = prs.slides.add_slide(prs.slide_layouts[1])
prs.save('C:\Documents\template_save.pptx')

Могу ли я сделать это с помощью Java Apache-Poi?

2 ответа

Решение

Я попробовал гибридный подход, и он работает хорошо.

1. Скопируйте и добавьте слайд в конце презентации с помощью python-pptx 2. Измените порядок слайдов с помощью Apache POI

ppt.setSlideOrder(slides.length-1, 4); // Bring last slide to 5th position
      from pptx import Presentation
def move_slide(old_index, new_index):
    xml_slides = presentation.slides._sldIdLst
    slides = list(xml_slides)
    xml_slides.remove(slides[old_index])
    xml_slides.insert(new_index, slides[old_index])
presentation = Presentation(pptpath)
layout = presentation.slide_masters[0].slide_layouts[6]
slide = presentation.slides.add_slide(layout)
slide_id = presentation.slides.index(slide)
move_slide(slide_id, 3)
presentation.save(pptpath)
Другие вопросы по тегам