Compartilhar via


Como trabalhar com layouts de slide

Este tópico aborda a classe Open XML SDK for Office SlideLayout e como se relaciona com o esquema Open XML File Format PresentationML.

Esquemas de Diapositivos no PresentationML

A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <sldLayout/> utilizado para representar esquemas de diapositivos num documento PresentationML da seguinte forma:

Este elemento especifica uma instância de um esquema de diapositivo. O esquema de diapositivo contém essencialmente uma estrutura de diapositivo de modelo que pode ser aplicada a qualquer diapositivo existente. Quando aplicado a um diapositivo existente, todos os conteúdos correspondentes devem ser mapeados para o novo esquema de diapositivo.

O <sldLayout/> elemento é o elemento raiz da peça Esquema de Diapositivo 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 seguinte lista os elementos subordinados do <sldLayout/> elemento utilizado ao trabalhar com esquemas de diapositivos e as classes open XML SDK que correspondem aos mesmos.

Elemento PresentationML Abrir Classe SDK XML
<clrMapOvr/> ColorMapOverride
<cSld/> CommonSlideData
<extLst/> ExtensionListWithModification
<hf/> HeaderFooter
<timing/> Timing
<transition/> Transition

A tabela seguinte da especificação ISO/IEC 29500 descreve os atributos do <sldLayout/> elemento.

Atributos Description
matchingName (Nome Correspondente) Especifica um nome a ser utilizado em vez do atributo name no elemento cSld. Isto é utilizado para a correspondência de esquemas em resposta a alterações de esquema e aplicações de modelo.

Os valores possíveis para este atributo são definidos pelo tipo de dados Esquema string XML W3C.
preservar (Preservar Esquema de Diapositivo) Especifica se o esquema de diapositivo correspondente é eliminado quando todos os diapositivos que se seguem a esse esquema são eliminados. Se este atributo não for especificado, um valor de false deve ser assumido pela aplicação geradora. Tal significaria que o diapositivo seria, de facto, eliminado se não existissem diapositivos na apresentação relacionados com o mesmo.

Os valores possíveis para este atributo são definidos pelo tipo de dados Esquema boolean XML W3C.
showMasterPhAnim (Mostrar Animações de Marcador de Posição Principal) Especifica se pretende ou não apresentar animações em marcadores de posição do diapositivo master.

Os valores possíveis para este atributo são definidos pelo tipo de dados Esquema boolean XML W3C.
showMasterSp (Mostrar Formas Mestre) Especifica se as formas no diapositivo master devem ou não ser apresentadas nos diapositivos.

Os valores possíveis para este atributo são definidos pelo tipo de dados Esquema boolean XML W3C.
type (Tipo de Esquema de Diapositivo) Especifica o tipo de esquema de diapositivo utilizado por este diapositivo.

Os valores possíveis para este atributo são definidos pelo ST_SlideLayoutType tipo simples (}19.7.15).
userDrawn (É Desenhado pelo Utilizador) Especifica se o objeto correspondente foi desenhado pelo utilizador e, portanto, não deve ser eliminado. Isto permite a sinalização de diapositivos que contêm dados desenhados pelo utilizador.

Os valores possíveis para este atributo são definidos pelo tipo de dados Esquema boolean XML W3C.

Classe Open XML SDK SlideLayout

A classe SDK SlideLayout OXML representa o <sldLayout/> elemento definido no esquema Open XML File Format para documentos PresentationML. Utilize a SlideLayout classe para manipular elementos individuais <sldLayout/> num documento PresentationML.

As classes que representam elementos subordinados do <sldLayout/> elemento e que, por conseguinte, estão frequentemente associadas à SlideLayout classe são apresentadas na lista seguinte.

Classe ColorMapOverride

A ColorMapOverride classe corresponde ao <clrMapOvr/> elemento . As seguintes informações da especificação ISO/IEC 29500 introduzem o <clrMapOvr/> elemento:

Este elemento fornece um mecanismo para substituir os esquemas de cores listados no <ClrMap/> elemento . Se o <masterClrMapping/> elemento subordinado estiver presente, é utilizado o esquema de cores definido pelo master. Se o <overrideClrMapping/> elemento subordinado estiver presente, define um novo esquema de cores específico para o diapositivo de notas principais, diapositivo de apresentação ou esquema de diapositivo.

Classe CommonSlideData

A CommonSlideData classe corresponde ao <cSld/> elemento . As seguintes informações da especificação ISO/IEC 29500 introduzem o <cSld/> elemento:

Este elemento especifica um contentor para o tipo de informações de diapositivos relevantes para todos os tipos de diapositivos. Todos os diapositivos partilham um conjunto comum de propriedades independentes do tipo de diapositivo; a descrição destas propriedades para qualquer diapositivo específico é armazenada no contentor do <cSld/> diapositivo. Os dados de diapositivos específicos do tipo de diapositivo indicado pelo elemento principal são armazenados noutro local.

Os dados reais no <cSld/> descrevem apenas o diapositivo principal específico; é apenas o tipo de informações armazenadas que é comum em todos os diapositivos.

Classe ExtensionListWithModification

A ExtensionListWithModification classe corresponde ao <extLst/>elemento . As seguintes informações do

ISO/IEC 29500

especificação apresenta o <extLst/> elemento:

Este elemento especifica a lista de extensões com a capacidade de modificação na qual são definidas todas as extensões futuras do tipo <ext/> de elemento. A lista de extensões, juntamente com as extensões futuras correspondentes, é utilizada para expandir as capacidades de armazenamento da arquitetura PresentationML. Isto permite que vários novos tipos de dados sejam armazenados nativamente dentro da arquitetura.

Observação

A utilização deste elemento extLst permite que a aplicação geradora armazene se esta 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:

Este elemento especifica as informações de cabeçalho e rodapé de um diapositivo. Os cabeçalhos e rodapés consistem em marcadores de posição para texto que devem ser consistentes em todos os diapositivos e tipos de diapositivos, como uma data e hora, numeração de diapositivos e texto de cabeçalho e rodapé personalizado.

Classe de Temporização

A Timing classe corresponde ao <timing/> elemento . As seguintes informações da especificação ISO/IEC 29500 introduzem o <timing/> elemento:

Este elemento especifica as informações de temporização para processar todas as animações e eventos temporizados no diapositivo correspondente. Estas informações são controladas através de nós de tempo dentro do <timing/> elemento . Pode encontrar mais informações sobre as especificidades destes nós de tempo e como devem ser definidos na secção Animação da arquitetura 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:

Este elemento especifica o tipo de transição de diapositivo que deve ser utilizado para fazer a transição para o diapositivo atual do diapositivo anterior. Ou seja, as informações de transição são armazenadas no diapositivo que aparece após a transição estar concluída.

Trabalhar com a Classe SlideLayout

Conforme mostrado no exemplo de código do SDK Open XML que se segue, todas as instâncias da SlideLayout classe estão associadas a uma instância da classe, que representa uma parte do SlideLayoutPart esquema de diapositivo, uma das partes necessárias de um pacote de ficheiros de apresentação PresentationML. Cada SlideLayout instância de classe também deve ser associada a instâncias das SlideMaster classes e Slide , por sua vez, associadas a partes de apresentação necessárias com o SlideMasterPart mesmo nome, representadas pelas classes e SlidePart .

A SlideLayout classe, que representa o <sldLayout/> elemento, também está associada a uma série de outras classes que representam os elementos subordinados do <sldLayout/> elemento. Entre estas classes, conforme mostrado no seguinte exemplo de código, estão a CommonSlideData classe, a ColorMapOverride classe, a ShapeTree classe e a Shape classe.

Open XML SDK Code Example

O seguinte método do artigo Procedimentos: Criar um documento de apresentação ao fornecer um nome de ficheiro adiciona uma nova peça de esquema de diapositivo a uma apresentação existente e cria uma instância de uma classe Open XML SDK SlideLayout na nova peça de esquema de diapositivo. O SlideLayout construtor de classes cria instâncias da CommonSlideData classe e da ColorMapOverride 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 espaço de nomes representado pela letra P no código é o espaço de nomes.

static SlideLayoutPart CreateSlideLayoutPart(SlidePart slidePart1)
{
    SlideLayoutPart slideLayoutPart1 = slidePart1.AddNewPart<SlideLayoutPart>("rId1");
    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;
}

Apresentação GeradaML

Quando o código SDK Open XML é executado, o seguinte XML é escrito no ficheiro 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

Acerca do SDK Open XML para o Office

Como: Criar uma Apresentação ao Fornecer um Nome de Ficheiro

Como: Aplicar um tema a uma apresentação