Мастер‑слайд
Главные слайды образуют верхний уровень иерархии наследования слайдов в PowerPoint. Мастер‑слайд определяет общие элементы дизайна, такие как фоны, логотипы и форматирование текста. Слайды‑макета наследуются от мастер‑слайдов, а обычные слайды наследуются от слайдов‑макета.
В этой статье демонстрируется, как создавать, изменять и управлять мастер‑слайдами с помощью Aspose.Slides for C++.
Добавить мастер‑слайд
В этом примере показано, как создать новый мастер‑слайд, клонировав стандартный. Затем он добавляет баннер с названием компании ко всем слайдам через наследование макета.
static void AddMasterSlide()
{
auto presentation = MakeObject<Presentation>();
// Клонировать стандартный мастер‑слайд.
auto defaultMasterSlide = presentation->get_Master(0);
auto newMasterSlide = presentation->get_Masters()->AddClone(defaultMasterSlide);
// Добавить баннер с названием компании в верхнюю часть мастер‑слайда.
auto textBox = newMasterSlide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 0, 0, 720, 25);
textBox->get_TextFrame()->set_Text(u"Company Name");
auto paragraph = textBox->get_TextFrame()->get_Paragraph(0);
auto textFormat = paragraph->get_ParagraphFormat()->get_DefaultPortionFormat();
textFormat->get_FillFormat()->set_FillType(FillType::Solid);
textFormat->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Black());
textBox->get_FillFormat()->set_FillType(FillType::NoFill);
// Присвоить новый мастер‑слайд слайду‑макету.
auto layoutSlide = presentation->get_LayoutSlide(0);
layoutSlide->set_MasterSlide(newMasterSlide);
// Присвоить слайд‑макет первому слайду в презентации.
presentation->get_Slide(0)->set_LayoutSlide(layoutSlide);
presentation->Dispose();
}
💡 Примечание 1: Мастер‑слайды позволяют применять единый брендинг или общие элементы дизайна ко всем слайдам. Любые изменения, внесённые в мастер, автоматически отразятся на зависимых макетах и обычных слайдах. 💡 Примечание 2: Любые фигуры или форматирование, добавленные в мастер‑слайд, наследуются слайдами‑макета и, в свою очередь, всеми обычными слайдами, использующими эти макеты. Изображение ниже иллюстрирует, как текстовое поле, добавленное в мастер‑слайд, автоматически отображается на конечном слайде.

Получить доступ к мастер‑слайду
Вы можете получить доступ к мастер‑слайдам, используя коллекцию мастеров презентации. Ниже показано, как извлекать их и работать с ними:
static void AccessMasterSlide()
{
auto presentation = MakeObject<Presentation>();
auto firstMasterSlide = presentation->get_Master(0);
// Изменить тип фона.
firstMasterSlide->get_Background()->set_Type(BackgroundType::OwnBackground);
presentation->Dispose();
}
Удалить мастер‑слайд
Мастер‑слайды можно удалять как по индексу, так и по ссылке.
static void RemoveMasterSlide()
{
auto presentation = MakeObject<Presentation>(u"sample.pptx");
// Удалить мастер‑слайд по индексу.
presentation->get_Masters()->RemoveAt(0);
// Удалить мастер‑слайд по ссылке.
auto firstMasterSlide = presentation->get_Master(0);
presentation->get_Masters()->Remove(firstMasterSlide);
presentation->Dispose();
}
Удалить неиспользуемые мастер‑слайды
Некоторые презентации содержат мастер‑слайды, которые не используются. Удаление этих слайдов может помочь уменьшить размер файла.
static void RemoveUnusedMasterSlide()
{
auto presentation = MakeObject<Presentation>();
// Удалить все неиспользуемые мастер‑слайды (даже те, которые помечены как Preserve).
presentation->get_Masters()->RemoveUnused(true);
presentation->Dispose();
}