Управление мастер‑слайдами презентации в Java
Что такое Slide Master в PowerPoint
Slide Master — это шаблон слайда, определяющий расположение, стили, тему, шрифты, фон и другие свойства слайдов в презентации. Если вы хотите создать презентацию (или серию презентаций) в едином стиле и шаблоне для вашей компании, вы можете использовать Slide Master.
Slide Master полезен, потому что позволяет задать и изменить внешний вид всех слайдов презентации сразу. Aspose.Slides поддерживает механизм Slide Master из PowerPoint.
VBA также позволяет манипулировать Slide Master и выполнять те же операции, поддерживаемые в PowerPoint: менять фон, добавлять фигуры, настраивать макет и т.д. Aspose.Slides предоставляет гибкие механизмы, позволяющие использовать Slide Masters и выполнять базовые задачи с ними.
Это базовые операции с Slide Master:
- Создать Slide Master.
- Применить Slide Master к слайдам презентации.
- Изменить фон Slide Master.
- Добавить изображение, заполнитель, Smart Art и т.д. в Slide Master.
Это более продвинутые операции, связанные со Slide Master:
- Сравнить Slide Masters.
- Объединить Slide Masters.
- Применить несколько Slide Masters.
- Скопировать слайд с Slide Master в другую презентацию.
- Найти дублирующие Slide Masters в презентациях.
- Установить Slide Master как представление по умолчанию для презентации.
Как применяется Slide Master
Прежде чем работать со Slide Master, вам может потребоваться понять, как они используются в презентациях и применяются к слайдам.
- Каждая презентация содержит как минимум один Slide Master по умолчанию.
- Презентация может содержать несколько Slide Masters. Вы можете добавить несколько Slide Masters и использовать их для оформления разных частей презентации различными способами.
В Aspose.Slides Slide Master представлен типом IMasterSlide.
Объект Presentation библиотеки Aspose.Slides содержит список getMasters типа IMasterSlideCollection, который включает список всех мастер‑слайдов, определённых в презентации.
Помимо операций CRUD, интерфейс IMasterSlideCollection содержит полезные методы: addClone(ILayoutSlide sourceLayout) и insertClone(int index, IMasterSlide sourceMaster) . Эти методы унаследованы из базовой функции клонирования слайдов. Однако при работе с Slide Masters они позволяют реализовывать сложные настройки.
При добавлении нового слайда в презентацию к нему автоматически применяется Slide Master. По умолчанию выбирается Slide Master предыдущего слайда.
Note: Слайды презентации хранятся в списке getSlides() , и каждый новый слайд по умолчанию добавляется в конец коллекции. Если в презентации содержится один Slide Master, этот мастер‑слайд выбирается для всех новых слайдов. По этой причине вам не нужно задавать Slide Master для каждого нового создаваемого слайда.
Принцип такой же в PowerPoint и Aspose.Slides. Например, в PowerPoint, когда вы добавляете новую презентацию, можно просто щёлкнуть по нижней линии под последним слайдом, и тогда будет создан новый слайд (с Slide Master последней презентации):

В Aspose.Slides вы можете выполнить аналогичную задачу с помощью метода addClone(ISlide sourceSlide) класса Presentation .
Slide Master в иерархии слайдов
Использование Slide Layout вместе со Slide Master обеспечивает максимальную гибкость. Slide Layout позволяет задать те же стили, что и Slide Master (фон, шрифты, фигуры и т.д.). Однако когда несколько Slide Layout объединяются в Slide Master, создаётся новый стиль. При применении Slide Layout к отдельному слайду вы можете изменить его стиль относительно того, который задаёт Slide Master.
Slide Master имеет высший приоритет среди всех настроек: Slide Master → Slide Layout → Slide:
Каждый объект IMasterSlide имеет свойство getLayoutSlides с перечнем Slide Layout. Тип Slide имеет свойство getLayoutSlide со ссылкой на Slide Layout, примененный к слайду. Взаимодействие между слайдом и Slide Master происходит через Slide Layout.
Note
- В Aspose.Slides все настройки слайдов (Slide Master, Slide Layout и сам слайд) на самом деле являются объектами слайдов, реализующими интерфейс IBaseSlide.
- Поэтому Slide Master и Slide Layout могут реализовывать одинаковые свойства, и вам необходимо знать, как их значения будут применяться к объекту Slide. Сначала к слайду применяется Slide Master, затем – Slide Layout. Например, если у Slide Master и Slide Layout указано значение фона, в итоге слайд получит фон из Slide Layout.
Что содержит Slide Master
Чтобы понять, как можно изменить Slide Master, необходимо знать его составные части. Это основные свойства MasterSlide.
- getBackground — получить/установить фон слайда.
- getBodyStyle — получить/установить стили текста тела слайда.
- getShapes — получить/установить все фигуры Slide Master (заполнители, рамки изображений и т.д.).
- getControls — получить/установить элементы управления ActiveX.
- getThemeManager — получить менеджер темы.
- getHeaderFooterManager — получить менеджер верхнего и нижнего колонтитула.
Методы Slide Master
- getDependingSlides — получить все слайды, зависящие от Slide Master.
- applyExternalThemeToDependingSlides — позволяет создать новый Slide Master на основе текущего Slide Master и новой темы. Новый Slide Master затем будет применён ко всем зависимым слайдам.
Получить Slide Master
В PowerPoint Slide Master доступен через меню Вид → Slide Master:

С помощью Aspose.Slides вы можете получить Slide Master таким образом:
Presentation pres = new Presentation();
try {
// Получает доступ к мастер‑слайду презентации
IMasterSlide masterSlide = pres.getMasters().get_Item(0);
} finally {
pres.dispose();
}
Интерфейс IMasterSlide представляет Slide Master. Свойство Masters (связанное с типом IMasterSlideCollection) содержит список всех Slide Master, определённых в презентации.
Добавить изображение в Slide Master
Когда вы добавляете изображение в Slide Master, оно будет отображаться на всех слайдах, зависящих от этого мастер‑слайда.
Например, вы можете разместить логотип вашей компании и несколько изображений на Slide Master, а затем вернуться в режим редактирования слайдов. Вы должны увидеть изображение на каждом слайде.

Вы можете добавить изображения в Slide Master с помощью Aspose.Slides:
Presentation pres = new Presentation();
try {
IPPImage picture;
IImage image = Images.fromFile("image.png");
try {
picture = pres.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
pres.getMasters().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, picture);
pres.save("pres.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
See also
Для получения дополнительной информации о добавлении изображений в слайд см. статью Picture Frame.Добавить заполнитель в Slide Master
Эти текстовые поля являются стандартными заполнителями на Slide Master:
- Кликните, чтобы редактировать стиль заголовка мастера
- Редактировать стили текста мастера
- Второй уровень
- Третий уровень
Они также отображаются на слайдах, основанных на Slide Master. Вы можете редактировать эти заполнители на Slide Master, и изменения автоматически применяются к слайдам.
В PowerPoint вы можете добавить заполнитель через путь Slide Master → Insert Placeholder:

Рассмотрим более сложный пример заполнителей с Aspose.Slides. Представьте слайд с заполнителями, созданными из Slide Master:

Мы хотим изменить форматирование Title и Subtitle в Slide Master следующим образом:

Сначала мы получаем содержимое заполнителя заголовка из объекта Slide Master, а затем используем поле PlaceHolder.FillFormat:
public static void main(String[] args) {
Presentation pres = new Presentation();
try {
IMasterSlide master = pres.getMasters().get_Item(0);
IAutoShape placeHolder = findPlaceholder(master, PlaceholderType.Title);
placeHolder.getFillFormat().setFillType(FillType.Gradient);
placeHolder.getFillFormat().getGradientFormat().setGradientShape(GradientShape.Linear);
placeHolder.getFillFormat().getGradientFormat().getGradientStops().add(0, new Color(255, 0, 0));
placeHolder.getFillFormat().getGradientFormat().getGradientStops().add(255, new Color(128, 0, 128));
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
}
static IAutoShape findPlaceholder(IMasterSlide master, int type)
{
for (IShape shape : master.getShapes())
{
IAutoShape autoShape = (IAutoShape) shape;
if (autoShape != null)
{
if (autoShape.getPlaceholder().getType() == type)
{
return autoShape;
}
}
}
return null;
}
Стиль и форматирование заголовка изменятся для всех слайдов, основанных на мастер‑слайде:

Изменить фон Slide Master
При изменении цвета фона мастер‑слайда все обычные слайды презентации получат новый цвет. Этот код на Java демонстрирует операцию:
Presentation pres = new Presentation();
try {
IMasterSlide master = pres.getMasters().get_Item(0);
master.getBackground().setType(BackgroundType.OwnBackground);
master.getBackground().getFillFormat().setFillType(FillType.Solid);
master.getBackground().getFillFormat().getSolidFillColor().setColor(Color.GREEN);
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
See also
Клонировать Slide Master в другую презентацию
Чтобы клонировать Slide Master в другую презентацию, вызовите метод addClone из целевой презентации, передав в него Slide Master. Этот код на Java показывает, как клонировать Slide Master в другую презентацию:
Presentation presSource = new Presentation();
Presentation presTarget = new Presentation();
try {
IMasterSlide master = presTarget.getMasters().addClone(presSource.getMasters().get_Item(0));
} finally {
if (presSource != null) presSource.dispose();
}
Добавить несколько Slide Master в презентацию
Aspose.Slides позволяет добавить несколько Slide Master и Slide Layout в любую презентацию. Это дает возможность настраивать стили, макеты и параметры форматирования слайдов презентации различными способами.
В PowerPoint вы можете добавить новые Slide Master и Layout (из меню “Slide Master”) следующим образом:

С помощью Aspose.Slides вы можете добавить новый Slide Master, вызвав метод addClone:
// Добавляет новый мастер‑слайд
IMasterSlide secondMasterSlide = pres.getMasters().addClone(masterSlide);
Сравнить Slide Masters
Master Slide реализует интерфейс IBaseSlide, содержащий метод equals, который можно использовать для сравнения слайдов. Он возвращает true для Master Slides, идентичных по структуре и статическому содержимому.
Два Master Slides считаются равными, если их фигуры, стили, тексты, анимация и другие параметры совпадают. При сравнении не учитываются уникальные идентификаторы (например, SlideId) и динамическое содержимое (например, текущая дата в заполнителе Date).
Установить Slide Master как представление по умолчанию для презентации
Aspose.Slides позволяет установить Slide Master в качестве представления по умолчанию для презентации. Представление по умолчанию — то, что вы видите при открытии презентации.
Этот код показывает, как установить Slide Master в качестве представления по умолчанию презентации на Java:
// Создает экземпляр класса Presentation, который представляет файл презентации
Presentation presentation = new Presentation();
try {
// Устанавливает представление по умолчанию как SlideMasterView
presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
// Сохраняет презентацию
presentation.save("PresView.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Удалить неиспользуемые Master Slides
Aspose.Slides предоставляет метод removeUnusedMasterSlides (из класса Compress), позволяющий удалять нежелательные и неиспользуемые мастер‑слайды. Этот код на Java показывает, как удалить мастер‑слайд из презентации PowerPoint:
Presentation pres = new Presentation("pres.pptx");
try {
Compress.removeUnusedMasterSlides(pres);
pres.save("pres-out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Что такое Slide Master в PowerPoint?
Slide Master — это шаблон слайда, определяющий расположение, стили, темы, шрифты, фон и другие свойства слайдов в презентации. Он позволяет задать и изменить внешний вид всех слайдов презентации одновременно.
Как Slide Master применяется в презентации?
Каждая презентация по умолчанию имеет как минимум один Slide Master. При добавлении нового слайда к нему автоматически применяется Slide Master, обычно наследуемый от предыдущего слайда. Презентация может содержать несколько Slide Master для уникального оформления разных частей.
Какие элементы можно настроить в Slide Master?
- Background: задать фон слайда.
- BodyStyle: определить стили текста тела слайда.
- Shapes: управлять всеми фигурами на Slide Master, включая заполнители и рамки изображений.
- Controls: работать с элементами управления ActiveX.
- ThemeManager: получить доступ к менеджеру темы.
- HeaderFooterManager: управлять верхними и нижними колонтитулами.
Как добавить изображение в Slide Master?
Добавление изображения в Slide Master гарантирует его отображение на всех слайдах, зависящих от этого мастера. Например, размещение логотипа компании на Slide Master отобразится на каждом слайде презентации.
Как Slide Master относятся к Slide Layout?
Slide Layout работают вместе со Slide Master, обеспечивая гибкость в дизайне слайдов. Пока Slide Master определяет общие стили и темы, Slide Layout позволяют варьировать расположение содержимого. Иерархия выглядит так:
- Slide Master → определяет глобальные стили.
- Slide Layout → предоставляет различные варианты расположения содержимого.
- Slide → наследует дизайн от своего Slide Layout.
Могу ли я иметь несколько Slide Master в одной презентации?
Да, презентация может содержать несколько Slide Master. Это позволяет оформлять разные разделы презентации различными способами, обеспечивая гибкость дизайна.
Как получить доступ и изменить Slide Master с помощью Aspose.Slides?
В Aspose.Slides Slide Master представлен интерфейсом IMasterSlide. Вы можете получить доступ к Slide Master, используя метод getMasters объекта Presentation.