Gestionar maestros de diapositivas de presentación en .NET
Visión general
Un maestro de diapositivas define ajustes de diseño compartidos para un grupo de diapositivas. Puede contener formas comunes, logotipos, fondos, estilos de texto, ajustes de tema y ajustes de pie de página. En PowerPoint, editar un maestro de diapositivas es la forma habitual de mantener una presentación coherente sin repetir el mismo formato en cada diapositiva.
Aspose.Slides para .NET admite el mismo modelo. Una presentación puede contener una o más diapositivas maestras, y cada diapositiva maestra puede contener varias diapositivas de diseño. Las diapositivas normales no suelen referirse directamente a una diapositiva maestra. En su lugar, una diapositiva normal usa una diapositiva de diseño, y esa diapositiva de diseño pertenece a una diapositiva maestra.
La jerarquía es:
- Maestro de diapositiva - define el diseño y tema compartidos.
- Diapositiva de diseño - define una disposición específica de marcadores de posición y formato a nivel de diseño.
- Diapositiva normal - contiene el contenido real de la presentación y usa una diapositiva de diseño.

En Aspose.Slides, un maestro de diapositivas está representado por la interfaz IMasterSlide. Todos los maestros de diapositivas de una presentación están disponibles a través de la colección Presentation.Masters, que implementa IMasterSlideCollection.
Inheritance
Cuando la misma propiedad se define en más de un nivel, el nivel más específico gana. Por ejemplo, si una diapositiva maestra y una diapositiva de diseño ambas definen un fondo, las diapositivas basadas en ese diseño usan el fondo del diseño. Para obtener más información sobre las diapositivas de diseño, consulte Apply or Change Slide Layouts.Acceso a maestros de diapositivas
En PowerPoint, puedes abrir la vista de Maestro de diapositivas desde View > Slide Master.

En Aspose.Slides, use la colección Masters para acceder a los maestros de diapositivas:
using var presentation = new Presentation("presentation.pptx");
var firstMasterSlide = presentation.Masters[0];
var masterSlideCount = presentation.Masters.Count;
var firstMasterLayoutSlideCount = firstMasterSlide.LayoutSlides.Count;
Console.WriteLine("Master slides: " + masterSlideCount);
Console.WriteLine("Layouts in the first master: " + firstMasterLayoutSlideCount);
También puede obtener la diapositiva maestra usada por una diapositiva normal a través de su diseño:
using var presentation = new Presentation("presentation.pptx");
var slide = presentation.Slides[0];
var layoutSlide = slide.LayoutSlide;
var masterSlide = layoutSlide.MasterSlide;
var masterSlideName = masterSlide.Name;
Console.WriteLine(masterSlideName);
Qué contiene un maestro de diapositivas
Una diapositiva maestra es un objeto similar a una diapositiva. Implementa IBaseSlide, por lo que expone muchas de las mismas propiedades de diapositiva utilizadas por diapositivas normales y de diseño. Los miembros específicos del maestro se enumeran en la página de API IMasterSlide.
Los miembros del maestro de diapositivas más utilizados incluyen:
| Miembro | Propósito |
|---|---|
Background |
Establece el fondo a nivel de maestro. |
Shapes |
Almacena las formas colocadas en el maestro, como logotipos, marcos de imagen y texto compartido. |
LayoutSlides |
Almacena las diapositivas de diseño que pertenecen al maestro. |
ThemeManager |
Proporciona acceso a las API de tema del maestro. |
HeaderFooterManager |
Controla encabezados, pies de página, fechas y números de diapositiva para el maestro y sus diseños secundarios. |
GetDependingSlides |
Devuelve las diapositivas normales que dependen del maestro a través de sus diseños. |
Añadir una imagen a un maestro de diapositivas
Cuando añades una imagen a una diapositiva maestra, aparece en las diapositivas que usan diseños de ese maestro. Esto es útil para logotipos, marcas de agua, bandas decorativas y otros elementos visuales repetidos.
El siguiente ejemplo añade un logotipo a la primera diapositiva maestra:
using var presentation = new Presentation("presentation.pptx");
var masterSlide = presentation.Masters[0];
var logoBytes = File.ReadAllBytes("logo.png");
var logoImage = presentation.Images.AddImage(logoBytes);
masterSlide.Shapes.AddPictureFrame(
ShapeType.Rectangle,
x: 20,
y: 20,
width: 80,
height: 80,
image: logoImage);
presentation.Save("presentation-with-logo.pptx", SaveFormat.Pptx);
Para obtener más información sobre los marcos de imagen, consulte Picture Frame.
Trabajar con marcadores de posición
Los marcadores de posición se definen normalmente en las diapositivas de diseño. La diapositiva maestra proporciona el estilo y tema compartidos que esos diseños heredan, mientras que cada diseño decide qué marcadores están disponibles y dónde se colocan.
En PowerPoint, los comandos de marcador de posición están disponibles en la vista Maestro de diapositivas.

Para añadir nuevos marcadores de posición con Aspose.Slides, trabaje con la diapositiva de diseño que pertenece al maestro:
using var presentation = new Presentation("presentation.pptx");
var masterSlide = presentation.Masters[0];
var blankLayoutSlide =
masterSlide.LayoutSlides.GetByType(SlideLayoutType.Blank) ??
masterSlide.LayoutSlides.Add(SlideLayoutType.Blank, "Blank");
blankLayoutSlide.PlaceholderManager.AddTextPlaceholder(
x: 60,
y: 120,
width: 600,
height: 80);
presentation.Slides.AddEmptySlide(blankLayoutSlide);
presentation.Save("presentation-with-placeholder.pptx", SaveFormat.Pptx);
También puede dar formato a las formas de marcador de posición que ya existen en una diapositiva maestra. El siguiente ejemplo encuentra el marcador de posición de título y le aplica un relleno de degradado lineal:
using var presentation = new Presentation("presentation.pptx");
var masterSlide = presentation.Masters[0];
var titlePlaceholder = FindPlaceholder(masterSlide, PlaceholderType.Title);
if (titlePlaceholder != null)
{
var redGradientColor = Color.FromArgb(255, 0, 0);
var purpleGradientColor = Color.FromArgb(128, 0, 128);
titlePlaceholder.FillFormat.FillType = FillType.Gradient;
titlePlaceholder.FillFormat.GradientFormat.GradientShape = GradientShape.Linear;
titlePlaceholder.FillFormat.GradientFormat.GradientStops.Add(0, redGradientColor);
titlePlaceholder.FillFormat.GradientFormat.GradientStops.Add(255, purpleGradientColor);
}
presentation.Save("presentation-title-style.pptx", SaveFormat.Pptx);
static IAutoShape? FindPlaceholder(IMasterSlide masterSlide, PlaceholderType placeholderType)
{
foreach (var shape in masterSlide.Shapes)
{
if (shape is IAutoShape { Placeholder: not null } autoShape &&
autoShape.Placeholder.Type == placeholderType)
{
return autoShape;
}
}
return null;
}

Para obtener más opciones de formato de marcadores y de texto, consulte Set Prompt Text in Placeholder y Text Formatting.
Cambiar el fondo de un maestro de diapositivas
Un fondo de maestro se hereda por los diseños y diapositivas que no lo sobrescriben. El siguiente ejemplo establece un color de fondo sólido para la primera diapositiva maestra:
using var presentation = new Presentation("presentation.pptx");
var masterSlide = presentation.Masters[0];
masterSlide.Background.Type = BackgroundType.OwnBackground;
masterSlide.Background.FillFormat.FillType = FillType.Solid;
masterSlide.Background.FillFormat.SolidFillColor.Color = Color.ForestGreen;
presentation.Save("presentation-master-background.pptx", SaveFormat.Pptx);
Para temas relacionados, consulte Presentation Background y Presentation Theme.
Clonar un maestro de diapositivas a otra presentación
Use IMasterSlideCollection.AddClone para copiar una diapositiva maestra a otra presentación. El maestro copiado puede entonces ser usado por los diseños y diapositivas en la presentación de destino.
using var sourcePresentation = new Presentation("source.pptx");
using var destinationPresentation = new Presentation("destination.pptx");
var sourceMasterSlide = sourcePresentation.Masters[0];
var clonedMasterSlide = destinationPresentation.Masters.AddClone(sourceMasterSlide);
destinationPresentation.Save("destination-with-master.pptx", SaveFormat.Pptx);
Si necesita clonar diapositivas normales junto con su maestro, consulte Clone Slides.
Añadir varios maestros de diapositivas
Una presentación puede contener varios maestros de diapositivas. Esto es útil cuando diferentes secciones requieren distintas marcas, estructuras de página o ajustes de tema.

El siguiente ejemplo clona el maestro predeterminado, asigna al clon un fondo diferente, crea un diseño bajo ese maestro clonado y añade una nueva diapositiva basada en ese diseño:
using var presentation = new Presentation("presentation.pptx");
var defaultMasterSlide = presentation.Masters[0];
var sectionMasterSlide = presentation.Masters.AddClone(defaultMasterSlide);
sectionMasterSlide.Background.Type = BackgroundType.OwnBackground;
sectionMasterSlide.Background.FillFormat.FillType = FillType.Solid;
sectionMasterSlide.Background.FillFormat.SolidFillColor.Color = Color.LightSteelBlue;
var sourceBlankLayout =
defaultMasterSlide.LayoutSlides.GetByType(SlideLayoutType.Blank) ??
defaultMasterSlide.LayoutSlides[0];
var sectionBlankLayout = sectionMasterSlide.LayoutSlides.AddClone(sourceBlankLayout);
presentation.Slides.AddEmptySlide(sectionBlankLayout);
presentation.Save("presentation-with-multiple-masters.pptx", SaveFormat.Pptx);
Comparar maestros de diapositivas
Los maestros de diapositivas pueden compararse con el método Equals heredado de IBaseSlide. La comparación verifica la estructura y el contenido estático, como formas, texto, formato, animaciones y otras configuraciones de diapositiva. No compara identificadores únicos, como los IDs de diapositiva, ni valores dinámicos de marcadores, como la fecha actual.
using var firstPresentation = new Presentation("first.pptx");
using var secondPresentation = new Presentation("second.pptx");
var firstPresentationMasterCount = firstPresentation.Masters.Count;
var secondPresentationMasterCount = secondPresentation.Masters.Count;
for (var firstMasterIndex = 0; firstMasterIndex < firstPresentationMasterCount; firstMasterIndex++)
{
for (var secondMasterIndex = 0; secondMasterIndex < secondPresentationMasterCount; secondMasterIndex++)
{
var firstMasterSlide = firstPresentation.Masters[firstMasterIndex];
var secondMasterSlide = secondPresentation.Masters[secondMasterIndex];
var areMasterSlidesEqual = firstMasterSlide.Equals(secondMasterSlide);
if (areMasterSlidesEqual)
{
Console.WriteLine(
"first.pptx master #{0} equals second.pptx master #{1}",
firstMasterIndex,
secondMasterIndex);
}
}
}
Para más información, consulte Compare Presentation Slides.
Establecer la vista de maestro de diapositivas como vista predeterminada
Use la propiedad LastView en ViewProperties para controlar la vista que PowerPoint abre primero. El siguiente ejemplo abre la presentación en la vista Maestro de diapositivas:
using var presentation = new Presentation("presentation.pptx");
presentation.ViewProperties.LastView = ViewType.SlideMasterView;
presentation.Save("presentation-master-view.pptx", SaveFormat.Pptx);
Para más configuraciones de vista, consulte Save Presentation.
Eliminar maestros de diapositivas no utilizados
Las presentaciones a veces contienen maestros de diapositivas que ya no son usados por ninguna diapositiva normal. Eliminar maestros no utilizados puede reducir el tamaño del archivo y simplificar el mantenimiento de la plantilla.
Use MasterSlideCollection.RemoveUnused para eliminar los maestros no utilizados de la colección Masters:
using var presentation = new Presentation("presentation.pptx");
presentation.Masters.RemoveUnused(ignorePreserveField: true);
presentation.Save("presentation-clean.pptx", SaveFormat.Pptx);
También puede usar el método de bajo código Compress.RemoveUnusedMasterSlides:
using var presentation = new Presentation("presentation.pptx");
Aspose.Slides.LowCode.Compress.RemoveUnusedMasterSlides(presentation);
presentation.Save("presentation-clean.pptx", SaveFormat.Pptx);
Preguntas frecuentes
¿Cuál es la diferencia entre un maestro de diapositivas y una diapositiva de diseño?
Un maestro de diapositivas define ajustes de diseño compartidos como tema, fondo, formas comunes y estilos de texto. Una diapositiva de diseño pertenece a un maestro de diapositivas y define una disposición específica de marcadores de posición. Una diapositiva normal usa una diapositiva de diseño, por lo que hereda tanto del diseño como del maestro.
¿Puede una presentación contener varios maestros de diapositivas?
Sí. Una presentación puede contener varios maestros de diapositivas. Utilice varios maestros cuando diferentes secciones necesiten sistemas visuales o marcas distintas.
¿Debo añadir marcadores de posición a un maestro de diapositivas o a una diapositiva de diseño?
En la mayoría de los casos, añada marcadores de posición a las diapositivas de diseño. Coloque los elementos visuales compartidos y el formato común en el maestro de diapositivas, y luego coloque los marcadores de contenido en los diseños que usarán las diapositivas normales.
¿Puedo eliminar un maestro de diapositivas que aún está en uso?
No. Un maestro de diapositivas que tiene diapositivas dependientes no puede eliminarse de forma segura directamente. Primero mueva esas diapositivas a diseños bajo otro maestro, o utilice un método de limpieza de maestros no usados que elimine solo los maestros que no están en uso.