Gerenciar Mestres de Slides de Apresentação em .NET
Visão geral
Um slide mestre define configurações de design compartilhadas para um grupo de slides. Ele pode conter formas comuns, logotipos, fundos, estilos de texto, configurações de tema e configurações de rodapé. No PowerPoint, editar um slide mestre é a forma usual de manter uma apresentação consistente sem repetir a mesma formatação em cada slide.
Aspose.Slides for .NET oferece o mesmo modelo. Uma apresentação pode conter um ou mais slides mestres, e cada slide mestre pode conter vários slides de layout. Slides normais geralmente não referenciam um slide mestre diretamente. Em vez disso, um slide normal usa um slide de layout, e esse slide de layout pertence a um slide mestre.
A hierarquia é:
- Slide mestre – define o design e tema compartilhados.
- Slide de layout – define um arranjo específico de marcadores de posição e formatação ao nível do layout.
- Slide normal – contém o conteúdo real da apresentação e usa um slide de layout.

No Aspose.Slides, um slide mestre é representado pela interface IMasterSlide. Todos os slides mestres de uma apresentação estão disponíveis através da coleção Presentation.Masters, que implementa IMasterSlideCollection.
Inheritance
Quando a mesma propriedade é definida em mais de um nível, o nível mais específico prevalece. Por exemplo, se um slide mestre e um slide de layout definirem um fundo, os slides baseados naquele layout usarão o fundo do layout. Para mais informações sobre slides de layout, veja Aplicar ou Alterar Layouts de Slides.Acessar Slides Mestres
No PowerPoint, você pode abrir a visualização de Slide Mestre em Exibir > Slide Mestre.

No Aspose.Slides, use a coleção Masters para acessar os slides mestres:
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);
Você também pode obter o slide mestre usado por um slide normal através de seu layout:
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);
O que um Slide Mestre Contém
Um slide mestre é um objeto semelhante a um slide. Ele implementa IBaseSlide, portanto expõe muitas das mesmas propriedades de slide usadas por slides normais e de layout. Os membros específicos do mestre estão listados na página da API IMasterSlide.
Membros de slide mestre usados com frequência incluem:
| Membro | Finalidade |
|---|---|
Background |
Define o fundo do slide ao nível do mestre. |
Shapes |
Armazena as formas colocadas no mestre, como logotipos, quadros de imagem e texto compartilhado. |
LayoutSlides |
Armazena os slides de layout que pertencem ao mestre. |
ThemeManager |
Fornece acesso às APIs de tema do mestre. |
HeaderFooterManager |
Controla cabeçalhos, rodapés, datas e numeração de slides para o mestre e seus layouts filhos. |
GetDependingSlides |
Retorna os slides normais que dependem do mestre por meio de seus layouts. |
Adicionar uma Imagem a um Slide Mestre
Quando você adiciona uma imagem a um slide mestre, ela aparece nos slides que usam layouts desse mestre. Isso é útil para logotipos, marcas d’água, faixas decorativas e outros elementos visuais repetidos.
O exemplo a seguir adiciona um logotipo ao primeiro slide mestre:
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 mais informações sobre quadros de imagem, veja Quadro de Imagem.
Trabalhar com Marcadores de Posição
Marcadores de posição são normalmente definidos em slides de layout. O slide mestre fornece o estilo e o tema compartilhados que esses layouts herdam, enquanto cada layout decide quais marcadores de posição estão disponíveis e onde são colocados.
No PowerPoint, os comandos de marcador de posição estão disponíveis na visualização de Slide Mestre.

Para adicionar novos marcadores de posição com Aspose.Slides, trabalhe com o slide de layout que pertence ao mestre:
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);
Você também pode formatar formas de marcador de posição que já existam em um slide mestre. O exemplo a seguir encontra o marcador de posição de título e aplica um preenchimento de gradiente linear:
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 mais opções de formatação de marcadores de posição e texto, veja Definir Texto de Prompt em Marcador de Posição e Formatação de Texto.
Alterar o Fundo de um Slide Mestre
Um fundo de mestre é herdado por layouts e slides que não o sobrescrevem. O exemplo a seguir define uma cor de fundo sólida para o primeiro slide mestre:
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 assuntos relacionados, veja Fundo da Apresentação e Tema da Apresentação.
Clonar um Slide Mestre para Outra Apresentação
Use IMasterSlideCollection.AddClone para copiar um slide mestre para outra apresentação. O mestre copiado pode então ser usado por layouts e slides na apresentação 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);
Se precisar clonar slides normais junto com seu mestre, veja Clonar Slides.
Adicionar Vários Slides Mestres
Uma apresentação pode conter múltiplos slides mestres. Isso é útil quando diferentes seções exigem branding, estrutura de página ou configurações de tema distintas.

O exemplo a seguir clona o mestre padrão, atribui ao clone um fundo diferente, cria um layout sob esse mestre clonado e adiciona um novo slide baseado naquele layout:
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 Slides Mestres
Slides mestres podem ser comparados com o método Equals herdado de IBaseSlide. A comparação verifica estrutura e conteúdo estático, como formas, texto, formatação, animações e outras configurações de slide. Não compara identificadores únicos, como IDs de slide, ou valores dinâmicos de marcadores de posição, como a data atual.
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 mais informações, veja Comparar Slides da Apresentação.
Definir a Visualização de Slide Mestre como Visualização Padrão
Use a propriedade LastView em ViewProperties para controlar a visualização que o PowerPoint abre primeiro. O exemplo a seguir abre a apresentação na visualização de Slide Mestre:
using var presentation = new Presentation("presentation.pptx");
presentation.ViewProperties.LastView = ViewType.SlideMasterView;
presentation.Save("presentation-master-view.pptx", SaveFormat.Pptx);
Para mais configurações de visualização, veja Salvar Apresentação.
Remover Slides Mestres Não Utilizados
Apresentações às vezes contêm slides mestres que não são mais usados por nenhum slide normal. Remover mestres não utilizados pode reduzir o tamanho do arquivo e simplificar a manutenção de modelos.
Use MasterSlideCollection.RemoveUnused para remover mestres não utilizados da coleção Masters:
using var presentation = new Presentation("presentation.pptx");
presentation.Masters.RemoveUnused(ignorePreserveField: true);
presentation.Save("presentation-clean.pptx", SaveFormat.Pptx);
Você também pode usar o método de low‑code Compress.RemoveUnusedMasterSlides:
using var presentation = new Presentation("presentation.pptx");
Aspose.Slides.LowCode.Compress.RemoveUnusedMasterSlides(presentation);
presentation.Save("presentation-clean.pptx", SaveFormat.Pptx);
FAQ
Qual a diferença entre um slide mestre e um slide de layout?
Um slide mestre define configurações de design compartilhadas, como tema, fundo, formas comuns e estilos de texto. Um slide de layout pertence a um slide mestre e define um arranjo específico de marcadores de posição. Um slide normal usa um slide de layout, herdando tanto do layout quanto do mestre.
Uma apresentação pode conter vários slides mestres?
Sim. Uma apresentação pode conter vários slides mestres. Use múltiplos mestres quando diferentes seções precisam de sistemas visuais ou branding distintos.
Devo adicionar marcadores de posição a um slide mestre ou a um slide de layout?
Na maioria dos casos, adicione marcadores de posição a slides de layout. Coloque elementos visuais compartilhados e formatação comum no slide mestre e, em seguida, coloque os marcadores de posição de conteúdo nos layouts que os slides normais usarão.
Posso excluir um slide mestre que ainda está em uso?
Não. Um slide mestre que tem slides dependentes não pode ser removido com segurança diretamente. Primeiro mova esses slides para layouts sob outro mestre ou use um método de limpeza de mestres não usados que remova apenas mestres que não estejam em uso.