Как добавить слайд в середине презентации, используя 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)