Diapositiva maestra
Las diapositivas master forman el nivel superior de la jerarquía de herencia de diapositivas en PowerPoint. Una diapositiva master define elementos de diseño comunes, como fondos, logotipos y formato de texto. Las diapositivas de diseño heredan de las diapositivas master, y las diapositivas normales heredan de las diapositivas de diseño.
Este artículo muestra cómo crear, modificar y administrar diapositivas master usando Aspose.Slides para C++.
Agregar una diapositiva master
Este ejemplo muestra cómo crear una nueva diapositiva master clonando la predeterminada. A continuación, añade una pancarta con el nombre de la empresa a todas las diapositivas mediante la herencia de diseño.
static void AddMasterSlide()
{
auto presentation = MakeObject<Presentation>();
// Clona la diapositiva maestra predeterminada.
auto defaultMasterSlide = presentation->get_Master(0);
auto newMasterSlide = presentation->get_Masters()->AddClone(defaultMasterSlide);
// Añade una pancarta con el nombre de la empresa en la parte superior de la diapositiva maestra.
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);
// Asigna la nueva diapositiva maestra a una diapositiva de diseño.
auto layoutSlide = presentation->get_LayoutSlide(0);
layoutSlide->set_MasterSlide(newMasterSlide);
// Asigna la diapositiva de diseño a la primera diapositiva de la presentación.
presentation->get_Slide(0)->set_LayoutSlide(layoutSlide);
presentation->Dispose();
}
💡 Nota 1: Las diapositivas master ofrecen una forma de aplicar una identidad corporativa o elementos de diseño compartidos en todas las diapositivas. Cualquier cambio realizado en la master se reflejará automáticamente en las diapositivas de diseño y normales dependientes.
💡 Nota 2: Cualquier forma o formato añadido a una diapositiva master se hereda en las diapositivas de diseño y, a su vez, en todas las diapositivas normales que utilizan esos diseños.
La imagen a continuación ilustra cómo un cuadro de texto añadido en una diapositiva master se renderiza automáticamente en la diapositiva final.

Acceder a una diapositiva master
Puede acceder a las diapositivas master mediante la colección master de la presentación. A continuación se muestra cómo obtenerlas y trabajar con ellas:
static void AccessMasterSlide()
{
auto presentation = MakeObject<Presentation>();
auto firstMasterSlide = presentation->get_Master(0);
// Cambiar el tipo de fondo.
firstMasterSlide->get_Background()->set_Type(BackgroundType::OwnBackground);
presentation->Dispose();
}
Eliminar una diapositiva master
Las diapositivas master pueden eliminarse por índice o por referencia.
static void RemoveMasterSlide()
{
auto presentation = MakeObject<Presentation>(u"sample.pptx");
// Eliminar una diapositiva maestra por índice.
presentation->get_Masters()->RemoveAt(0);
// Eliminar una diapositiva maestra por referencia.
auto firstMasterSlide = presentation->get_Master(0);
presentation->get_Masters()->Remove(firstMasterSlide);
presentation->Dispose();
}
Eliminar diapositivas master no usadas
Algunas presentaciones contienen diapositivas master que no se utilizan. Eliminar estas diapositivas puede ayudar a reducir el tamaño del archivo.
static void RemoveUnusedMasterSlide()
{
auto presentation = MakeObject<Presentation>();
// Eliminar todas las diapositivas maestras no usadas (incluso las marcadas como Preserve).
presentation->get_Masters()->RemoveUnused(true);
presentation->Dispose();
}