Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico discute o Open XML SDK para a classe Office SlideMaster e como ele se relaciona com o esquema PresentationML do Open XML File Format.
Slides mestres em PresentationML
A ISO /IEC 29500 descreve o elemento Open XML PresentationML <sldMaster/> usado para representar layouts de slides em um documento PresentationML da seguinte maneira.
Este elemento especifica uma instância de um slide master. Dentro de um slide master estão contidos todos os elementos que descrevem os objetos e sua formatação correspondente dentro de um slide de apresentação. Dentro de um slide master há dois elementos principais. O elemento cSld especifica os elementos comuns do slide, como formas e seus corpos de texto anexados. Em seguida, o elemento txStyles especifica a formatação do texto em cada uma dessas formas. As outras propriedades dentro de um slide master slide especificam outras propriedades dentro de um slide de apresentação, como informações de cor, cabeçalhos e rodapés, bem como informações de tempo e transição para todos os slides de apresentação correspondentes.
O <sldMaster/> elemento é o elemento raiz da parte PresentationML Slide Mestre. Para obter mais informações sobre a estrutura geral das partes e elementos que compõem um documento PresentationML, consulte Estrutura de um documento PresentationML.
A tabela a seguir lista os elementos filho do <sldMaster/> elemento usado ao trabalhar com slides mestres e as classes Open XML SDK que correspondem a eles.
| Elemento PresentationML | Classe Open XML SDK |
|---|---|
<clrMap/> |
ColorMap |
<cSld/> |
CommonSlideData |
<extLst/> |
ExtensionListWithModification |
<hf/> |
HeaderFooter |
<sldLayoutIdLst/> |
SlideLayoutIdList |
<timing/> |
Timing |
<transition/> |
Transition |
<txStyles/> |
TextStyles |
A tabela a seguir da especificação ISO/IEC 29500 descreve os atributos do <sldMaster/> elemento.
| Atributos | Description |
|---|---|
| Preservar (Preservar Slide Mestre) | Especifica se o layout de slide correspondente é excluído quando todos os slides que seguem esse layout são excluídos. Se esse atributo não for especificado, um valor de deverá ser assumido false pelo aplicativo gerador. Isso significaria que o slide seria de fato excluído se nenhum slide da apresentação estivesse relacionado a ele.Os valores possíveis para esse atributo são definidos pelo tipo de dados Esquema Boolean XML do W3C. |
Open XML SDK SlideMaster Class
A classe Open XML SDKSlideMaster representa o <sldMaster/> elemento definido no esquema Open XML File Format para documentos PresentationML. Use a SlideMaster classe para manipular elementos individuais <sldMaster/> em um documento PresentationML.
As classes que representam elementos filho do <sldMaster/> elemento e que, portanto, são comumente associados à SlideMaster classe são mostradas na lista a seguir.
Classe ColorMapOverride
A ColorMapOverride classe corresponde ao <clrMapOvr/> elemento. As seguintes informações da especificação ISO/IEC 29500 introduzem o <clrMapOvr/> elemento:
Esse elemento fornece um mecanismo para substituir os esquemas de cores listados no <ClrMap/> elemento. Se o <masterClrMapping/> elemento filho estiver presente, o esquema de cores definido pelo master será usado. Se o <overrideClrMapping/> elemento filho estiver presente, ele definirá um novo esquema de cores específico para o slide de anotações pai, o slide de apresentação ou o layout do slide.
Classe CommonSlideData
A CommonSlideData classe corresponde ao <cSld/> elemento. As seguintes informações da especificação ISO/IEC 29500 introduzem o <cSld/> elemento:
Esse elemento especifica um contêiner para o tipo de informações de slide que é relevante para todos os tipos de slide. Todos os slides compartilham um conjunto comum de propriedades que é independente do tipo de slide; A descrição dessas propriedades para qualquer slide específico é armazenada no contêiner do <cSld/> slide. Os dados de slide específicos do tipo de slide indicado pelo elemento pai são armazenados em outro lugar.
Os dados reais descrevem <cSld/> apenas o slide pai específico; é apenas o tipo de informação armazenada que é comum em todos os slides.
Classe ExtensionListWithModification
A ExtensionListWithModification classe corresponde ao <extLst/>elemento. As seguintes informações da especificação ISO/IEC 29500 introduzem o <extLst/> elemento:
Este elemento especifica a lista de extensões com capacidade de modificação dentro da qual todas as extensões futuras do tipo <ext/> de elemento são definidas. A lista de extensão, juntamente com as extensões futuras correspondentes, é usada para estender os recursos de armazenamento da estrutura PresentationML. Isso permite que vários novos tipos de dados sejam armazenados nativamente na estrutura.
Observação
O uso desse elemento extLst permite que o aplicativo gerador armazene se essa propriedade de extensão foi modificada.
Classe HeaderFooter
A HeaderFooter classe corresponde ao <hf/> elemento. As seguintes informações da especificação ISO/IEC 29500 introduzem o <hf/> elemento:
Esse elemento especifica as informações de cabeçalho e rodapé de um slide. Cabeçalhos e rodapés consistem em espaços reservados para texto que devem ser consistentes em todos os slides e tipos de slide, como data e hora, numeração de slides e texto personalizado de cabeçalho e rodapé.
Classe SlideLayoutIdList
A SlideLayoutIdList classe corresponde ao <sldLayoutIdLst/> elemento. As seguintes informações da especificação ISO/IEC 29500 introduzem o <sldLayoutIdLst/> elemento:
Esse elemento especifica a existência da lista de identificação de layout de slide. Essa lista está contida no slide master e é usada para determinar quais layouts estão sendo usados no arquivo de slide master. Cada layout na lista de layouts de slide tem seu próprio número de identificação e identificador de relação que o identifica exclusivamente no documento de apresentação e no slide master específico no qual ele é usado.
Classe de tempo
A Timing classe corresponde ao <timing/> elemento. As seguintes informações da especificação ISO/IEC 29500 introduzem o <timing/> elemento:
Esse elemento especifica as informações de intervalo para lidar com todas as animações e eventos cronometrados no slide correspondente. Essas informações são rastreadas por meio de nós de tempo dentro do <timing/> elemento. Mais informações sobre as especificidades desses nós de tempo e como eles devem ser definidos podem ser encontradas na seção Animação da estrutura PresentationML.
Classe de transição
A Transition classe corresponde ao <transition/> elemento. As seguintes informações da especificação ISO/IEC 29500 introduzem o <transition/> elemento:
Esse elemento especifica o tipo de transição de slide que deve ser usada para fazer a transição do slide anterior para o slide atual. Ou seja, as informações sobre a transição são armazenadas no slide que aparece após a conclusão da transição.
Classe TextStyles
A TextStyles classe corresponde ao <txStyles/> elemento. As seguintes informações da especificação ISO/IEC 29500 introduzem o <txStyles/> elemento:
Este elemento especifica os estilos de texto em um slide master. Dentro desse elemento estão as informações de estilo do texto do título, do corpo e de outros textos do slide. Este elemento é apenas para uso dentro do Slide Mestre e, portanto, define os estilos de texto para os slides de apresentação correspondentes.
Considere o caso em que gostaríamos de especificar o texto do título de um slide master.
<p:txStyles>
<p:titleStyle>
<a:lvl1pPr algn="ctr" rtl="0" latinLnBrk="0">
<a:spcBef>
<a:spcPct val="0"/>
</a:spcBef>
<a:buNone/>
<a:defRPr sz="4400" kern="1200">
<a:solidFill>
<a:schemeClr val="tx1"/>
</a:solidFill>
<a:latin typeface="+mj-lt"/>
<a:ea typeface="+mj-ea"/>
<a:cs typeface="+mj-cs"/>
</a:defRPr>
</a:lvl1pPr>
</p:titleStyle>
</p:txStyles>
No exemplo anterior, o texto do título é definido de acordo com a formatação acima para todos os slides relacionados na apresentação.
Trabalhando com a classe SlideMaster
Conforme mostrado no exemplo de código do Open XML SDK a seguir, cada instância da SlideMaster classe está associada a uma instância da SlideMasterPart classe, que representa uma parte master do slide, uma das partes necessárias de um pacote de arquivos de apresentação PresentationML. Cada SlideMaster instância de classe também deve ser associada a SlideLayout instâncias das classes and Slide , que por sua vez estão associadas a partes de apresentação necessárias com nomes semelhantes, representadas pelas SlideLayoutPart classes and SlidePart .
A SlideMaster classe, que representa o <sldMaster/> elemento, também está, portanto, associada a uma série de outras classes que representam os elementos filho do <sldMaster/> elemento. Entre essas classes, conforme mostrado no exemplo de código a seguir, estão a classe, a CommonSlideDataColorMap classe, a ShapeTree classe e a Shape classe.
Exemplo de código do Open XML SDK
O seguinte método do artigo Como criar um documento de apresentação fornecendo um nome de arquivo adiciona uma nova parte do slidemaster a uma apresentação existente e cria uma instância de uma classe do Open XML SDK SlideMaster na nova parte do slide master. O SlideMaster construtor de classe cria instâncias da classe e das CommonSlideDataColorMapclasses , SlideLayoutIdList.TextStyles O CommonSlideData construtor de classe cria uma instância da ShapeTree classe, cujo construtor, por sua vez, cria instâncias de classe adicionais: uma instância da NonVisualGroupShapeProperties classe, uma instância da GroupShapeProperties classe e uma instância da Shape classe, entre outras.
O namespace representado pela letra P no código é o DocumentFormat.OpenXml.Presentation namespace.
static SlideMasterPart CreateSlideMasterPart(SlideLayoutPart slideLayoutPart1)
{
SlideMasterPart slideMasterPart1 = slideLayoutPart1.AddNewPart<SlideMasterPart>("rId1");
SlideMaster slideMaster = new SlideMaster(
new CommonSlideData(new ShapeTree(
new P.NonVisualGroupShapeProperties(
new P.NonVisualDrawingProperties() { Id = (UInt32Value)1U, Name = "" },
new P.NonVisualGroupShapeDrawingProperties(),
new ApplicationNonVisualDrawingProperties()),
new GroupShapeProperties(new TransformGroup()),
new P.Shape(
new P.NonVisualShapeProperties(
new P.NonVisualDrawingProperties() { Id = (UInt32Value)2U, Name = "Title Placeholder 1" },
new P.NonVisualShapeDrawingProperties(new ShapeLocks() { NoGrouping = true }),
new ApplicationNonVisualDrawingProperties(new PlaceholderShape() { Type = PlaceholderValues.Title })),
new P.ShapeProperties(),
new P.TextBody(
new BodyProperties(),
new ListStyle(),
new Paragraph())))),
new P.ColorMap() { Background1 = D.ColorSchemeIndexValues.Light1, Text1 = D.ColorSchemeIndexValues.Dark1, Background2 = D.ColorSchemeIndexValues.Light2, Text2 = D.ColorSchemeIndexValues.Dark2, Accent1 = D.ColorSchemeIndexValues.Accent1, Accent2 = D.ColorSchemeIndexValues.Accent2, Accent3 = D.ColorSchemeIndexValues.Accent3, Accent4 = D.ColorSchemeIndexValues.Accent4, Accent5 = D.ColorSchemeIndexValues.Accent5, Accent6 = D.ColorSchemeIndexValues.Accent6, Hyperlink = D.ColorSchemeIndexValues.Hyperlink, FollowedHyperlink = D.ColorSchemeIndexValues.FollowedHyperlink },
new SlideLayoutIdList(new SlideLayoutId() { Id = (UInt32Value)2147483649U, RelationshipId = "rId1" }),
new TextStyles(new TitleStyle(), new BodyStyle(), new OtherStyle()));
slideMasterPart1.SlideMaster = slideMaster;
return slideMasterPart1;
}