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 SlideLayout e como ele se relaciona com o esquema PresentationML do Open XML File Format.
Layouts de slides no PresentationML
A ISO /IEC 29500 descreve o elemento Open XML PresentationML <sldLayout/> usado para representar layouts de slide em um documento PresentationML da seguinte maneira:
Esse elemento especifica uma instância de um layout de slide. O layout do slide contém, em essência, um design de slide de modelo que pode ser aplicado a qualquer slide existente. Quando aplicado a um slide existente, todo o conteúdo correspondente deve ser mapeado para o novo layout de slide.
O <sldLayout/> elemento é o elemento raiz da parte de Layout de Slide PresentationML. 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 <sldLayout/> elemento usado ao trabalhar com layouts de slide e as classes Open XML SDK que correspondem a eles.
| Elemento PresentationML | Classe Open XML SDK |
|---|---|
<clrMapOvr/> |
ColorMapOverride |
<cSld/> |
CommonSlideData |
<extLst/> |
ExtensionListWithModification |
<hf/> |
HeaderFooter |
<timing/> |
Timing |
<transition/> |
Transition |
A tabela a seguir da especificação ISO/IEC 29500 descreve os atributos do <sldLayout/> elemento.
| Atributos | Description |
|---|---|
| matchingName (nome correspondente) | Especifica um nome a ser usado no lugar do atributo name dentro do elemento cSld. Isso é usado para correspondência de layout em resposta a alterações de layout e aplicativos de modelo. Os valores possíveis para esse atributo são definidos pelo tipo de dados Esquema string XML do W3C. |
| preservar (Preservar Layout do Slide) | 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. |
| showMasterPhAnim (mostrar animações de espaço reservado mestre) | Especifica se as animações devem ou não ser exibidas nos espaços reservados do slide master. Os valores possíveis para esse atributo são definidos pelo tipo de dados Esquema boolean XML do W3C. |
| showMasterSp (Mostrar Formas Mestras) | Especifica se as formas no slide master devem ser mostradas nos slides ou não. Os valores possíveis para esse atributo são definidos pelo tipo de dados Esquema boolean XML do W3C. |
| tipo (Tipo de Layout de Slide) | Especifica o tipo de layout de slide usado por este slide. Os valores possíveis para esse atributo são definidos pelo tipo simples ST_SlideLayoutType (§19.7.15). |
| userDrawn (é desenhado pelo usuário) | Especifica se o objeto correspondente foi desenhado pelo usuário e, portanto, não deve ser excluído. Isso permite a sinalização de slides que contenham dados desenhados pelo usuário. Os valores possíveis para esse atributo são definidos pelo tipo de dados Esquema boolean XML do W3C. |
A classe SlideLayout do SDK do Open XML
A classe OXML SDK SlideLayout representa o <sldLayout/> elemento definido no esquema Open XML File Format para documentos PresentationML. Use a SlideLayout classe para manipular elementos individuais <sldLayout/> em um documento PresentationML.
As classes que representam elementos filho do <sldLayout/> elemento e que, portanto, são comumente associados à SlideLayout 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 do
A especificação apresenta 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 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.
Trabalhando com a classe SlideLayout
Conforme mostrado no exemplo de código do Open XML SDK a seguir, cada instância da SlideLayout classe está associada a uma instância da SlideLayoutPart classe, que representa uma parte do layout do slide, uma das partes necessárias de um pacote de arquivos de apresentação PresentationML. Cada SlideLayout instância de classe também deve ser associada a SlideMaster 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 SlideMasterPart classes and SlidePart .
A SlideLayout classe, que representa o <sldLayout/> elemento, também está, portanto, associada a uma série de outras classes que representam os elementos filho do <sldLayout/> elemento. Entre essas classes, conforme mostrado no exemplo de código a seguir, estão a classe, a CommonSlideDataColorMapOverride 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 de layout de slide a uma apresentação existente e cria uma instância de uma classe Open XML SDK SlideLayout na nova parte de layout de slide. O SlideLayout construtor de classe cria instâncias da classe e da CommonSlideDataColorMapOverride classe. 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.
O namespace representado pela letra P no código é o DocumentFormat.OpenXml.Presentation namespace.
static SlideLayoutPart CreateSlideLayoutPart(SlidePart slidePart1)
{
SlideLayoutPart slideLayoutPart1 = slidePart1.AddNewPart<SlideLayoutPart>();
SlideLayout slideLayout = new SlideLayout(
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 = "" },
new P.NonVisualShapeDrawingProperties(new ShapeLocks() { NoGrouping = true }),
new ApplicationNonVisualDrawingProperties(new PlaceholderShape())),
new P.ShapeProperties(),
new P.TextBody(
new BodyProperties(),
new ListStyle(),
new Paragraph(new EndParagraphRunProperties()))))),
new ColorMapOverride(new MasterColorMapping()));
slideLayoutPart1.SlideLayout = slideLayout;
return slideLayoutPart1;
}
PresentationML gerado
Quando o código do Open XML SDK é executado, o XML a seguir é gravado no arquivo de documento PresentationML referenciado no código.
<?xml version="1.0" encoding="utf-8"?>
<p:sldLayout xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
<p:cSld>
<p:spTree>
<p:nvGrpSpPr>
<p:cNvPr id="1"
name="" />
<p:cNvGrpSpPr />
<p:nvPr />
</p:nvGrpSpPr>
<p:grpSpPr>
<a:xfrm xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" />
</p:grpSpPr>
<p:sp>
<p:nvSpPr>
<p:cNvPr id="2"
name="" />
<p:cNvSpPr>
<a:spLocks noGrp="1"
xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" />
</p:cNvSpPr>
<p:nvPr>
<p:ph />
</p:nvPr>
</p:nvSpPr>
<p:spPr />
<p:txBody>
<a:bodyPr xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" />
<a:lstStyle xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" />
<a:p xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:endParaRPr />
</a:p>
</p:txBody>
</p:sp>
</p:spTree>
</p:cSld>
<p:clrMapOvr>
<a:masterClrMapping xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" />
</p:clrMapOvr>
</p:sldLayout>
Confira também
Sobre o Open XML SDK para Office