Методы вставки слайда в определенный индекс с использованием python-pptx

В библиотеке Python python-pptxвы можете вставить слайд по определенному индексу, используя следующие методы:

  1. Использование prs.slides.add_slide(slide_layout):
    Этот метод добавляет новый слайд в конце презентации и позволяет указать желаемый макет слайда.. Чтобы вставить слайд по определенному индексу, вы можете создать новый слайд с помощью этого метода, а затем переместить его в нужное положение.

    from pptx import Presentation
    prs = Presentation('presentation.pptx')
    slide_layout = prs.slide_layouts[1]  # Choose the desired slide layout
    new_slide = prs.slides.add_slide(slide_layout)
    prs.slides._sldIdLst.insert(index, new_slide._element)
  2. Использование prs.slides._sldIdLst.insert(index,lide_element):
    Этот метод напрямую вставляет элемент слайда по указанному индексу в списке слайдов. Вам необходимо создать элемент слайда отдельно, а затем вставить его в нужное место.

    from pptx import Presentation
    from pptx.oxml import ns
    from pptx.oxml import parse_xml
    prs = Presentation('presentation.pptx')
    slide_layout = prs.slide_layouts[1]  # Choose the desired slide layout
    new_slide = parse_xml(r"<p:sld xmlns:p='http://schemas.openxmlformats.org/presentationml/2006/main'><p:cSld><p:spTree/></p:cSld></p:sld>")
    new_slide_id = prs.slides._next_slide_id
    new_slide._element.set(ns.qn('r:id'), new_slide_id)
    prs.slides._sldIdLst.insert(index, new_slide)

Обратите внимание, что в обоих методах вам следует заменить 'presentation.pptx'фактическим путем к файлу презентации PowerPoint, а index– желаемым индексом, в котором вы хотите вставить слайд (индекс отсчитывается от 0).