Добавление слайдов в презентации на Python

Обзор

Aspose.Slides позволяет программно добавлять слайды в презентации PowerPoint. Презентация содержит слайды‑мастера/макета и обычные слайды, и обычные слайды упорядочены по нулевому индексу. Каждый слайд имеет уникальный идентификатор, а файлы презентаций без слайдов не поддерживаются.

В этой статье объясняется, как создать объект Presentation , получить его коллекцию слайдов, добавить пустой слайд, работать с только что добавленным слайдом и сохранить обновлённую презентацию. Также рассматриваются связанные вопросы, такие как вставка слайдов в определённую позицию, использование макетов и понимание пустого слайда, который существует в только что созданной презентации.

Добавление слайда в презентацию

Прежде чем обсуждать, как добавлять слайды в файлы презентаций, рассмотрим некоторые факты о слайдах. Каждый файл презентации PowerPoint содержит мастер/макет‑слайды и обычные слайды. Файл презентации содержит как минимум один слайд. Файлы презентаций без слайдов не поддерживаются Aspose.Slides for Python via Java. Каждый слайд имеет уникальный идентификатор, и все обычные слайды упорядочены в порядке, задаваемом нулевым индексом.

Aspose.Slides for Python via Java позволяет разработчикам добавлять пустые слайды в свои презентации. Чтобы добавить пустой слайд в презентацию, выполните следующие шаги:

  • Создайте экземпляр класса Presentation .
  • Получите ссылку на объект SlideCollection с помощью метода getSlides , предоставляемого объектом Presentation .
  • Добавьте пустой слайд в конец коллекции слайдов презентации, вызвав метод addEmptySlide , предоставляемый объектом SlideCollection .
  • Выполните необходимые действия с только что добавленным пустым слайдом.
  • Наконец, запишите файл презентации, используя объект Presentation .
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

# Создайте экземпляр класса Presentation, представляющего файл презентации.
presentation = Presentation()
try:
    # Получить коллекцию слайдов.
    slides = presentation.getSlides()

    for i in range(presentation.getLayoutSlides().size()):
        # Добавить пустой слайд в коллекцию слайдов.
        slides.addEmptySlide(presentation.getLayoutSlides().get_Item(i))

    # Выполнить некоторые действия с только что добавленным слайдом.

    # Сохранить файл PPTX на диск.
    presentation.save("EmptySlide.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

FAQ

Могу ли я вставить новый слайд в определённую позицию, а не только в конец?

Да. Библиотека поддерживает операции над коллекциями слайдов и insert/clone , поэтому можно добавить слайд по требуемому индексу, а не только в конец.

Сохраняются ли темы/стили при добавлении слайда на основе макета?

Да. Макет наследует форматирование от своего мастера, а новый слайд наследует его от выбранного макета и связанного с ним мастера.

Какой слайд присутствует в новой «пустой» презентации до добавления слайдов?

В только что созданной презентации уже есть один пустой слайд с индексом ноль. Это важно учитывать при расчёте индексов вставки.

Как выбрать «правильный» макет для нового слайда, если у мастера много вариантов?

Обычно выбирают LayoutSlide , который соответствует требуемой структуре (Title and Content, Two Content и т.д.). Если такой макет отсутствует, его можно add it to the master и затем использовать.