Слайд-Мастер

Что такое слайд-мастер в PowerPoint

Слайд-Мастер — это шаблон слайда, который определяет макет, стили, тему, шрифты, фон и другие свойства слайдов в презентации. Если вы хотите создать презентацию (или серию презентаций) с одинаковым стилем и шаблоном для вашей компании, вы можете использовать слайд-мастер.

Слайд-мастер полезен, потому что позволяет вам устанавливать и изменять внешний вид всех слайдов презентации одновременно. Aspose.Slides поддерживает механизм слайд-мастера из PowerPoint.

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

Вот основные операции с слайд-мастером:

  • Создать или редактировать слайд-мастер.
  • Применить слайд-мастер к слайдам презентации.
  • Изменить фон слайд-мастера.
  • Добавить изображение, заполнитель, Smart Art и т. д. на слайд-мастер.

Вот более сложные операции с слайд-мастерами:

  • Сравнить слайд-мастеры.
  • Объединить слайд-мастеры.
  • Применить несколько слайд-мастеров.
  • Скопировать слайд с слайд-мастером в другую презентацию.
  • Найти дублирующие слайд-мастеры в презентациях.
  • Установить слайд-мастер как вид по умолчанию для презентации.

Как применяется слайд-мастер

Прежде чем работать со слайд-мастером, вам может быть полезно понять, как они используются в презентациях и применяются к слайдам.

  • Каждая презентация по умолчанию имеет как минимум один слайд-мастер.
  • Презентация может содержать несколько слайд-мастеров. Вы можете добавить несколько слайд-мастеров и использовать их для стилизации различных частей презентации различными способами.

В Aspose.Slides слайд-мастер представлен типом IMasterSlide.

Объект Презентация Aspose.Slides содержит список masters типа IMasterSlideCollection, который содержит список всех мастер-слайдов, определенных в презентации.

Кроме CRUD-операций интерфейс IMasterSlideCollection содержит следующие полезные методы: add_clone и insert_clone. Эти методы унаследованы от базовой функции клонирования слайдов. Но при работе со слайд-мастерами эти методы позволяют реализовать сложные настройки.

Когда новый слайд добавляется в презентацию, слайд-мастер автоматически применяется к нему. По умолчанию выбирается слайд-мастер предыдущего слайда.

Примечание: Слайды презентации хранятся в списке Слайды, и каждый новый слайд по умолчанию добавляется в конец коллекции. Если в презентации содержится только один слайд-мастер, этот слайд-мастер будет выбран для всех новых слайдов. Поэтому вам не нужно определять слайд-мастер для каждого нового слайда, который вы создаете.

Принцип такой же для PowerPoint и Aspose.Slides. Например, в PowerPoint, когда вы добавляете новую презентацию, вы можете просто нажать на нижнюю границу под последним слайдом, и затем будет создан новый слайд (с последним слайдом-мастером):

todo:image_alt_text

В Aspose.Slides вы можете выполнить аналогичную задачу с помощью метода add_clone(ISlide) из класса Презентация.

Слайд-мастер в иерархии слайдов

Использование макетов слайдов с слайд-мастером обеспечивает максимальную гибкость. Макет слайда позволяет устанавливать все те же стили, что и слайд-мастер (фон, шрифты, фигуры и т. д.). Однако, когда несколько макетов слайдов комбинируются на слайд-мастере, создается новый стиль. Когда вы применяете макет слайда к отдельному слайду, вы можете изменить его стиль, отличая от примененного слайд-мастером.

Слайд-мастер имеет более высокий приоритет, чем все элементы настроек: Слайд-мастер -> Макет слайда -> Слайд:

todo:image_alt_text

Каждый IMasterSlide имеет свойство LayoutSlides со списком макетов слайдов. Тип Слайд имеет свойство LayoutSlide с ссылкой на макет слайда, примененный к слайду. Взаимодействие между слайдом и слайд-мастером происходит через макет слайда.

Что включает в себя слайд-мастер

Чтобы понять, как можно изменить слайд-мастер, необходимо знать его составные части. Вот основные свойства MasterSlide.

  • background получить/установить фон слайда.
  • body_style получить/установить текстовые стили тела слайда.
  • shapes получить/установить все фигуры слайд-мастера (заполнители, рамки для изображений и т. д.).
  • controls - получить/установить элементы управления ActiveX.
  • theme_manager - получить менеджер тем.
  • header_footer_manager - получить менеджер заголовков и подвалов.

Методы слайд-мастера:

  • get_depending_slides() - получить все слайды, зависимые от слайд-мастера.
  • apply_external_theme_to_depending_slides(fname) - позволяет создать новый слайд-мастер на основе текущего слайд-мастера и новой темы. Новый слайд-мастер потом будет применен ко всем зависимым слайдам.

Получить слайд-мастер

В PowerPoint слайд-мастер можно получить через меню Вид -> Слайд-мастер:

todo:image_alt_text

Используя Aspose.Slides, вы можете получить доступ к слайд-мастеру следующим образом:

import aspose.slides as slides

with slides.Presentation() as pres:
    # Получаем доступ к мастер-слайду презентации
    masterSlide = pres.masters[0]

Интерфейс IMasterSlide представляет слайд-мастер. Свойство masters (связанное с типом IMasterSlideCollection содержит список всех слайд-мастеров, определенных в презентации.

Добавить изображение на слайд-мастер

Когда вы добавляете изображение на слайд-мастер, это изображение появится на всех слайдах, зависящих от этого слайд-мастера.

Например, вы можете разместить логотип вашей компании и несколько изображений на слайд-мастере, а затем вернуться в режим редактирования слайдов. Вы должны увидеть изображение на каждом слайде.

todo:image_alt_text

Вы можете добавлять изображения на слайд-мастер с помощью Aspose.Slides:

import aspose.slides as slides

with slides.Presentation() as pres:
    image = pres.images.add_image(open("image.png", "rb").read())
    pres.masters[0].shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, image)

    pres.save("pres.pptx", slides.export.SaveFormat.PPTX)

Добавить заполнитель на слайд-мастер

Эти текстовые поля являются стандартными заполнителями на слайд-мастере:

  • Нажмите для редактирования стиля заголовка мастера

  • Редактировать стили текста мастера

  • Второй уровень

  • Третий уровень

Они также появляются на слайдах, основанных на слайд-мастере. Вы можете редактировать эти заполнители на слайд-мастере, и изменения будут автоматически применены к слайдам.

В PowerPoint вы можете добавить заполнитель через путь Слайд-мастер -> Вставить заполнитель:

todo:image_alt_text

Рассмотрим более сложный пример для заполнителей с помощью Aspose.Slides. Рассмотрим слайд с заполнителями, шаблонированными с слайд-мастера:

todo:image_alt_text

Мы хотим изменить форматирование заголовка и подзаголовка на слайд-мастере следующим образом:

todo:image_alt_text

Сначала мы извлекаем содержимое заполнителя заголовка из объекта слайд-мастера, а затем используем поле PlaceHolder.FillFormat:

# Получаем ссылку на заполнители заголовка мастера
titlePlaceholder = masterSlide.shapes[0]

# Устанавливаем формат заполнения как градиентное заполнение
titlePlaceholder.fill_format.fill_type = slides.FillType.GRADIENT
titlePlaceholder.fill_format.gradient_format.gradient_stops.add(0, draw.Color.red)
titlePlaceholder.fill_format.gradient_format.gradient_stops.add(50, draw.Color.green)
titlePlaceholder.fill_format.gradient_format.gradient_stops.add(100, draw.Color.blue)

Стиль и форматирование заголовка изменятся для всех слайдов, основанных на слайд-мастере:

todo:image_alt_text

Изменить фон на слайд-мастере

Когда вы изменяете цвет фона слайд-мастера, все обычные слайды в презентации получат новый цвет. Этот код на Python демонстрирует операцию:

masterSlide.background.type = slides.BackgroundType.OWN_BACKGROUND
masterSlide.background.fill_format.fill_type = slides.FillType.SOLID
masterSlide.background.fill_format.solid_fill_color.color = draw.Color.gray

Клонировать слайд-мастер в другую презентацию

Чтобы клонировать слайд-мастер в другую презентацию, вызовите метод add_clone(source_slide, dest_master, allow_clone_missing_layout) из целевой презентации рядом с переданным слайд-мастером. Этот код на Python показывает, как клонировать слайд-мастер в другую презентацию:

# Добавляет новый слайд-мастер 
pres1MasterSlide = pres.masters.add_clone(masterSlide)

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

Aspose.Slides позволяет добавлять несколько слайд-мастеров и макетов слайдов в любую данную презентацию. Это позволяет настраивать стили, макеты и параметры форматирования для слайдов презентации различными способами.

В PowerPoint вы можете добавить новые слайд-мастеры и макеты (из меню “Слайд-мастер”) следующим образом:

todo:image_alt_text

Используя Aspose.Slides, вы можете добавить новый слайд-мастер, вызвав метод add_clone:

# Добавляет новый слайд-мастер
secondMasterSlide = pres.masters.add_clone(masterSlide)

Сравнить слайд-мастеры

Слайд-мастер реализует интерфейс IBaseSlide, содержащий метод equals(slide), который можно использовать для сравнения слайдов. Метод возвращает true для слайд-мастеров, идентичных по структуре и статическому содержимому.

Два слайд-мастера равны, если их фигуры, стили, тексты, анимация и другие настройки и т. д. равны. Сравнение не учитывает значения уникальных идентификаторов (например, SlideId) и динамическое содержание (например, текущее значение даты в заполнителе даты).

Установить слайд-мастер как вид по умолчанию для презентации

Aspose.Slides позволяет установить слайд-мастер в качестве вида по умолчанию для презентации. Вид по умолчанию — это то, что вы видите в первую очередь, когда открываете презентацию.

Этот код показывает, как установить слайд-мастер в качестве вида по умолчанию для презентации на Python:

import aspose.slides as slides

# Создает экземпляр класса Presentation, представляющего файл презентации
with slides.Presentation() as presentation:
    # Устанавливает последний вид как SlideMasterView
    presentation.view_properties.last_view = slides.ViewType.SLIDE_MASTER_VIEW

    # Сохраняет презентацию
    presentation.save("PresView.pptx", slides.export.SaveFormat.PPTX)

Удалить неиспользуемый слайд-мастер

Aspose.Slides предоставляет метод remove_unused_master_slides (из класса Compress), который позволяет вам удалить нежелательные и неиспользуемые слайд-мастеры. Этот код на Python показывает, как удалить слайд-мастер из презентации PowerPoint:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres:
    slides.lowcode.Compress.remove_unused_master_slides(pres)
    pres.save("pres-out.pptx", slides.export.SaveFormat.PPTX)