Administrar maestros de diapositivas de presentación en Android
Qué es un Slide Master en PowerPoint
Un Slide Master es una plantilla de diapositiva que define el diseño, los estilos, el tema, las fuentes, el fondo y otras propiedades para las diapositivas de una presentación. Si desea crear una presentación (o una serie de presentaciones) con el mismo estilo y plantilla para su empresa, puede usar un Slide Master.
Un Slide Master es útil porque le permite establecer y cambiar el aspecto de todas las diapositivas de la presentación a la vez. Aspose.Slides admite el mecanismo de Slide Master de PowerPoint.
VBA también le permite manipular un Slide Master y ejecutar las mismas operaciones que admite PowerPoint: cambiar fondos, agregar formas, personalizar el diseño, etc. Aspose.Slides proporciona mecanismos flexibles para usar Slide Masters y realizar tareas básicas con ellos.
Estas son operaciones básicas de Slide Master:
- Crear un Slide Master.
- Aplicar Slides Master a las diapositivas de la presentación.
- Cambiar el fondo del Slide Master.
- Agregar una imagen, marcador de posición, Smart Art, etc. al Slide Master.
Estas son operaciones más avanzadas que involucran Slide Master:
- Comparar Slide Masters.
- Fusionar Slide Masters.
- Aplicar varios Slide Masters.
- Copiar una diapositiva con Slide Master a otra presentación.
- Encontrar Slide Masters duplicados en presentaciones.
- Establecer el Slide Master como vista predeterminada de la presentación.
Cómo se aplica un Slide Master
Antes de trabajar con un Slide Master, quizás quiera comprender cómo se utilizan en las presentaciones y se aplican a las diapositivas.
- Cada presentación tiene al menos un Slide Master de forma predeterminada.
- Una presentación puede contener varios Slide Masters. Puede agregar varios Slide Masters y usarlos para dar estilo a diferentes partes de una presentación de distintas maneras.
En Aspose.Slides, un Slide Master está representado por el tipo IMasterSlide.
El objeto Presentation de Aspose.Slides contiene la lista getMasters del tipo IMasterSlideCollection, que contiene una lista de todas las diapositivas maestras definidas en una presentación.
Además de las operaciones CRUD, la interfaz IMasterSlideCollection contiene estos métodos útiles: addClone(ILayoutSlide sourceLayout) y insertClone(int index, IMasterSlide sourceMaster) . Estos métodos se heredan de la función básica de clonación de diapositivas. Pero al trabajar con Slide Masters, esos métodos le permiten implementar configuraciones complejas.
Cuando se agrega una nueva diapositiva a una presentación, se le aplica automáticamente un Slide Master. El Slide Master de la diapositiva anterior se selecciona de forma predeterminada.
Nota: Las diapositivas de la presentación se almacenan en la lista getSlides(), y cada nueva diapositiva se agrega al final de la colección de forma predeterminada. Si una presentación contiene un único Slide Master, ese Slide Master se selecciona para todas las nuevas diapositivas. Esta es la razón por la que no necesita definir el Slide Master para cada nueva diapositiva que cree.
El principio es el mismo para PowerPoint y Aspose.Slides. Por ejemplo, en PowerPoint, cuando agrega una nueva diapositiva, puede simplemente pulsar en la línea inferior bajo la última diapositiva y entonces se creará una nueva diapositiva (con el Slide Master de la última presentación):

En Aspose.Slides, puede realizar la tarea equivalente con el método addClone(ISlide sourceSlide) de la clase Presentation .
Slide Master en la jerarquía de diapositivas
Usar Slide Layouts con Slide Master permite la máxima flexibilidad. Un Slide Layout le permite establecer los mismos estilos que el Slide Master (fondo, fuentes, formas, etc.). Sin embargo, cuando varios Slide Layouts se combinan en un Slide Master, se crea un nuevo estilo. Cuando aplica un Slide Layout a una sola diapositiva, puede cambiar su estilo respecto al aplicado por el Slide Master.
Slide Master tiene prioridad sobre todos los elementos de configuración: Slide Master -> Slide Layout -> Slide:
Cada objeto IMasterSlide tiene una propiedad getLayoutSlides con una lista de Slide Layouts. Un tipo Slide posee una propiedad getLayoutSlide que enlaza a un Slide Layout aplicado a la diapositiva. La interacción entre una diapositiva y el Slide Master ocurre a través de un Slide Layout.
Note
- En Aspose.Slides, todas las configuraciones de diapositiva (Slide Master, Slide Layout y la propia diapositiva) son en realidad objetos de diapositiva que implementan la interfaz IBaseSlide.
- Por lo tanto, Slide Master y Slide Layout pueden implementar las mismas propiedades y debe saber cómo se aplicarán sus valores a un objeto Slide. El Slide Master se aplica primero a una diapositiva y luego se aplica el Slide Layout. Por ejemplo, si el Slide Master y el Slide Layout tienen ambos un valor de fondo, la diapositiva terminará con el fondo del Slide Layout.
Qué contiene un Slide Master
Para comprender cómo se puede modificar un Slide Master, necesita conocer sus componentes. Estas son las propiedades principales de MasterSlide.
- getBackground obtener/establecer el fondo de la diapositiva.
- getBodyStyle - obtener/establecer los estilos de texto del cuerpo de la diapositiva.
- getShapes obtener/establecer todas las formas del Slide Master (marcadores de posición, marcos de imagen, etc).
- getControls obtener/establecer controles ActiveX.
- getThemeManager - obtener el gestor de temas.
- getHeaderFooterManager - obtener el gestor de encabezado y pie de página.
Métodos de Slide Master:
- getDependingSlides - obtener todas las diapositivas que dependen del Slide Master.
- applyExternalThemeToDependingSlides - permite crear un nuevo Slide Master basado en el Slide Master actual y un nuevo tema. El nuevo Slide Master se aplicará entonces a todas las diapositivas dependientes.
Obtener un Slide Master
En PowerPoint, el Slide Master se puede acceder desde el menú Ver -> Slide Master:

Con Aspose.Slides, puede acceder a un Slide Master de esta manera:
Presentation pres = new Presentation();
try {
// Da acceso a la diapositiva maestra de la presentación
IMasterSlide masterSlide = pres.getMasters().get_Item(0);
} finally {
pres.dispose();
}
La interfaz IMasterSlide representa un Slide Master. La propiedad Masters (relacionada con el tipo IMasterSlideCollection) contiene una lista de todos los Slide Masters definidos en la presentación.
Agregar una imagen a un Slide Master
Cuando agrega una imagen a un Slide Master, esa imagen aparecerá en todas las diapositivas dependientes de ese Slide Master.
Por ejemplo, puede colocar el logotipo de su empresa y algunas imágenes en el Slide Master y luego volver al modo de edición de diapositivas. Debería ver la imagen en cada diapositiva.

Puede agregar imágenes a un Slide Master con 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
Para obtener más información sobre cómo agregar imágenes a una diapositiva, consulte el artículo Picture Frame.Agregar un marcador de posición a un Slide Master
Estos campos de texto son marcadores de posición estándar en un Slide Master:
- Haga clic para editar el estilo del título del Master
- Editar los estilos de texto del Master
- Segundo nivel
- Tercer nivel
También aparecen en las diapositivas basadas en el Slide Master. Puede editar esos marcadores de posición en un Slide Master y los cambios se aplican automáticamente a las diapositivas.
En PowerPoint, puede agregar un marcador de posición a través de la ruta Slide Master -> Insert Placeholder:

Examinemos un ejemplo más complicado de marcadores de posición con Aspose.Slides. Considere una diapositiva con marcadores de posición basados en el Slide Master:

Queremos cambiar el formato del Título y Subtítulo en el Slide Master de esta manera:

Primero, recuperamos el contenido del marcador de posición de título del objeto Slide Master y luego usamos el campo 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;
}
El estilo y formato del título cambiarán para todas las diapositivas basadas en el Slide Master:

Cambiar el fondo en un Slide Master
Cuando cambia el color de fondo de una diapositiva maestra, todas las diapositivas normales de la presentación obtendrán el nuevo color. Este código Java demuestra la operación:
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();
}
Clonar un Slide Master a otra presentación
Para clonar un Slide Master a otra presentación, llame al método addClone de la presentación de destino junto con un Slide Master pasado como argumento. Este código Java le muestra cómo clonar un Slide Master a otra presentación:
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();
}
Agregar varios Slide Masters a una presentación
Aspose.Slides le permite agregar varios Slide Masters y Slide Layouts a cualquier presentación. Esto le permite configurar estilos, diseños y opciones de formato para las diapositivas de la presentación de diversas maneras.
En PowerPoint, puede agregar nuevos Slide Masters y Layouts (desde el menú “Slide Master”) de esta forma:

Con Aspose.Slides, puede agregar un nuevo Slide Master llamando al método addClone:
// Agrega una nueva diapositiva maestra
IMasterSlide secondMasterSlide = pres.getMasters().addClone(masterSlide);
Comparar Slide Masters
Un Master Slide implementa la interfaz IBaseSlide que contiene el método equals , el cual puede usarse para comparar diapositivas. Devuelve true para Master Slides idénticos en estructura y contenido estático.
Dos Master Slides son iguales si sus formas, estilos, textos, animaciones y demás configuraciones son iguales. La comparación no tiene en cuenta los valores de identificadores únicos (p. ej., SlideId) ni el contenido dinámico (p. ej., el valor de fecha actual en el marcador de posición de fecha).
Establecer un Slide Master como vista predeterminada de la presentación
Aspose.Slides le permite establecer un Slide Master como vista predeterminada de una presentación. La vista predeterminada es lo que ve primero al abrir una presentación.
Este código le muestra cómo establecer un Slide Master como vista predeterminada de la presentación en Java:
// Instancia una clase Presentation que representa el archivo de presentación
Presentation presentation = new Presentation();
try {
// Establece la vista predeterminada como SlideMasterView
presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
// Guarda la presentación
presentation.save("PresView.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Eliminar diapositivas maestras no usadas
Aspose.Slides proporciona el método removeUnusedMasterSlides (de la clase Compress) para permitirle eliminar diapositivas maestras no deseadas y no usadas. Este código Java muestra cómo eliminar una diapositiva maestra de una presentación PowerPoint:
Presentation pres = new Presentation("pres.pptx");
try {
Compress.removeUnusedMasterSlides(pres);
pres.save("pres-out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Preguntas frecuentes
¿Qué es un Slide Master en PowerPoint?
Un Slide Master es una plantilla de diapositiva que define el diseño, los estilos, los temas, las fuentes, el fondo y otras propiedades de las diapositivas en una presentación. Le permite establecer y cambiar el aspecto de todas las diapositivas de la presentación a la vez.
¿Cómo se aplica un Slide Master en una presentación?
Cada presentación tiene al menos un Slide Master de forma predeterminada. Cuando se agrega una nueva diapositiva, se le aplica automáticamente un Slide Master, normalmente heredando el maestro de la diapositiva anterior. Una presentación puede contener varios Slide Masters para dar estilo a diferentes partes de forma única.
¿Qué elementos pueden personalizarse en un Slide Master?
Un Slide Master comprende varias propiedades principales que pueden personalizarse:
- Background: Establecer el fondo de la diapositiva.
- BodyStyle: Definir los estilos de texto del cuerpo de la diapositiva.
- Shapes: Administrar todas las formas en el Slide Master, incluidos los marcadores de posición y los marcos de imágenes.
- Controls: Gestionar controles ActiveX.
- ThemeManager: Acceder al gestor de temas.
- HeaderFooterManager: Administrar encabezados y pies de página.
¿Cómo puedo agregar una imagen a un Slide Master?
Agregar una imagen a un Slide Master asegura que aparezca en todas las diapositivas que dependen de ese maestro. Por ejemplo, colocar el logotipo de la empresa en el Slide Master lo mostrará en cada diapositiva de la presentación.
¿Cómo se relacionan los Slide Masters con los Slide Layouts?
Los Slide Layouts funcionan en conjunto con los Slide Masters para proporcionar flexibilidad en el diseño de diapositivas. Mientras un Slide Master define estilos y temas generales, los Slide Layouts permiten variaciones en la disposición del contenido. La jerarquía es la siguiente:
- Slide Master → Define estilos globales.
- Slide Layout → Proporciona diferentes disposiciones de contenido.
- Slide → Hereda el diseño de su Slide Layout.
¿Puedo tener varios Slide Masters en una sola presentación?
Sí, una presentación puede contener varios Slide Masters. Esto le permite dar estilo a diferentes secciones de la presentación de diversas maneras, proporcionando flexibilidad en el diseño.
¿Cómo accedo y modifico un Slide Master usando Aspose.Slides?
En Aspose.Slides, un Slide Master está representado por la interfaz IMasterSlide. Puede acceder a un Slide Master mediante el método getMasters del objeto Presentation.