Como trabalhar com apresentações
Este tópico aborda a classe Open XML SDK for Office Presentation e como se relaciona com o esquema Open XML File Format 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.
Apresentações no PresentationML
A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <presentation/>
utilizado para representar uma apresentação num documento PresentationML da seguinte forma:
Este elemento especifica as propriedades fundamentais ao nível da apresentação.
Exemplo: Considere a apresentação seguinte com um único diapositivo master e dois diapositivos. Além destes elementos frequentemente utilizados, também pode haver a especificação de outras propriedades, como o tamanho do diapositivo, o tamanho das notas e os estilos de texto predefinidos.
<p:presentation xmlns:a="" xmlns:r="" xmlns:p="">
<p:sldMasterIdLst>
<p:sldMasterId id="2147483648" r:id="rId1">
</p:sldMasterIdLst>
<p:sldIdLst>
<p:sldId id="256" r:id="rId3"/>
<p:sldId id="257" r:id="rId4"/>
</p:sldIdLst>
<p:sldSz cx="9144000" cy="6858000" type="screen4x3"/>
<p:notesSz cx="6858000" cy="9144000"/>
<p:defaultTextStyle>
…
</p:defaultTextStyle>
</p:presentation>
© ISO/IEC 29500: 2016
Normalmente, o <presentation/>
elemento contém elementos subordinados que listam modelos globais de diapositivos, diapositivos e apresentações de diapositivos personalizadas contidas na apresentação. Além disso, também geralmente contém elementos que especificam outras propriedades da apresentação, como o tamanho do diapositivo, o tamanho das notas e os estilos de texto predefinidos.
O <presentation/>
elemento é o elemento raiz da peça Apresentação 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 alguns dos elementos subordinados mais comuns do <presentation/>
elemento utilizado ao trabalhar com apresentações e as classes open XML SDK que correspondem às mesmas.
Elemento PresentationML | Abrir Classe SDK XML |
---|---|
<sldMasterIdLst/> |
SlideMasterIdList |
<sldMasterId/> |
SlideMasterId |
<sldIdLst/> |
SlideIdList |
<sldId/> |
SlideId |
<notesMasterIdLst/> |
NotesMasterIdList |
<handoutMasterIdLst/> |
SlideMasterIdList |
<custShowLst/> |
CustomShowList |
<sldSz/> |
SlideSize |
<notesSz/> |
<xrefDocumentFormat.OpenXml.Presentation.NotesSize> |
<defaultTextStyle/> |
DefaultTextStyle |
Abrir a Classe de Apresentação do SDK XML
A classe Open XML SDK Presentation
representa o <presentation/>
elemento definido no esquema Open XML File Format para documentos PresentationML. Utilize a Presentation
classe para manipular um elemento individual <presentation/>
num documento PresentationML.
As classes normalmente associadas à Presentation
classe são apresentadas nas secções seguintes.
Classe SlideMasterIdList
Todos os diapositivos que partilham a mesma master herdam o mesmo esquema desse master. A SlideMasterIdList
classe corresponde ao <sldMasterIdList/>
elemento . A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <sldMasterIdList/>
utilizado para representar um diapositivo master lista de IDs num documento PresentationML da seguinte forma:
Este elemento especifica uma lista de informações de identificação para o diapositivo master diapositivos que estão disponíveis na apresentação correspondente. Um diapositivo master é um diapositivo concebido especificamente para ser um modelo para todos os diapositivos de esquema subordinados relacionados.
© ISO/IEC 29500: 2016
Classe SlideMasterId
A SlideMasterId
classe corresponde ao <sldMasterId/>
elemento . A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <sldMasterId/>
utilizado para representar um diapositivo master ID num documento PresentationML da seguinte forma:
Este elemento especifica um master de diapositivo que está disponível na apresentação correspondente. Um diapositivo master é um diapositivo concebido especificamente para ser um modelo para todos os diapositivos de esquema subordinados relacionados.
Exemplo: Considere a seguinte especificação de um diapositivo master numa apresentação
<p:presentation xmlns:a="" xmlns:r="" xmlns:p=""
embedTrueTypeFonts="1">
…
<p:sldMasterIdLst>
<p:sldMasterId id="2147483648" r:id="rId1"/>
</p:sldMasterIdLst>
…
</p:presentation>
© ISO/IEC 29500: 2016
Classe SlideIdList
A SlideIdList
classe corresponde ao <sldIdLst/>
elemento . A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <sldIdLst/>
utilizado para representar uma lista de IDs de diapositivos num documento PresentationML da seguinte forma:
Este elemento especifica uma lista de informações de identificação para os diapositivos que estão disponíveis na apresentação correspondente. Um diapositivo contém as informações específicas de um único diapositivo, como informações de texto e formas específicas do diapositivo.
© ISO/IEC 29500: 2016
Classe SlideId
A SlideId
classe corresponde ao <sldId/>
elemento . A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <sldId/>
utilizado para representar um ID de diapositivo num documento PresentationML da seguinte forma:
Este elemento especifica um diapositivo de apresentação que está disponível na apresentação correspondente. Um diapositivo contém as informações específicas de um único diapositivo, como informações de texto e formas específicas do diapositivo.
Exemplo: Considere a seguinte especificação de um diapositivo master numa apresentação
<p:presentation xmlns:a="" xmlns:r="" xmlns:p="" embedTrueTypeFonts="1">
…
<p:sldIdLst>
<p:sldId id="256" r:id="rId3"/>
<p:sldId id="257" r:id="rId4"/>
<p:sldId id="258" r:id="rId5"/>
<p:sldId id="259" r:id="rId6"/>
<p:sldId id="260" r:id="rId7"/>
</p:sldIdLst>
...
</p:presentation>
© ISO/IEC 29500: 2016
Classe NotesMasterIdList
A NotesMasterIdList
classe corresponde ao <notesMasterIdLst/>
elemento . A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <notesMasterIdLst/>
utilizado para representar uma lista de notas master ID num documento PresentationML da seguinte forma:
Este elemento especifica uma lista de informações de identificação para as notas master diapositivos que estão disponíveis na apresentação correspondente. Uma master de notas é um diapositivo concebido especificamente para a impressão do diapositivo juntamente com quaisquer notas anexadas.
© ISO/IEC 29500: 2016
Classe HandoutMasterIdList
A HandoutMasterIdList
classe corresponde ao <handoutMasterIdLst/>
elemento . A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <handoutMasterIdLst/>
utilizado para representar um folheto master lista de IDs num documento PresentationML da seguinte forma:
Este elemento especifica uma lista de informações de identificação para o folheto master diapositivos que estão disponíveis na apresentação correspondente. Um folheto master é um diapositivo concebido especificamente para impressão como folheto.
© ISO/IEC 29500: 2016
Classe CustomShowList
A CustomShowList
classe corresponde ao <custShowLst/>
elemento . A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <custShowLst/>
utilizado para representar uma lista de apresentação personalizada num documento PresentationML da seguinte forma:
Este elemento especifica uma lista de todas as apresentações personalizadas que estão disponíveis na apresentação correspondente. Uma apresentação personalizada é uma sequência de diapositivos definida que permite a apresentação dos diapositivos com a apresentação por qualquer ordem arbitrária.
© ISO/IEC 29500: 2016
Classe SlideSize
A SlideSize
classe corresponde ao <sldSz/>
elemento . A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <sldSz/>
utilizado para representar o tamanho do diapositivo de apresentação num documento PresentationML da seguinte forma:
Este elemento especifica o tamanho da superfície do diapositivo da apresentação. Os objetos dentro de um diapositivo de apresentação podem ser especificados fora destas extensões, mas este é o tamanho da superfície de fundo que é apresentado quando o diapositivo é apresentado ou impresso.
Exemplo: considere a seguinte especificação do tamanho de um diapositivo de apresentação.
<p:presentation xmlns:a="" xmlns:r="" xmlns:p=""
embedTrueTypeFonts="1">
…
<p:sldSz cx="9144000" cy="6858000" type="screen4x3"/>
…
</p:presentation>
© ISO/IEC 29500: 2016
Classe NotesSize
A NotesSize
classe corresponde ao <notesSz/>
elemento . A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <notesSz/>
utilizado para representar o tamanho do diapositivo de notas num documento PresentationML da seguinte forma:
Este elemento especifica o tamanho da superfície do diapositivo utilizado para diapositivos de notas e diapositivos de folhetos. Os objetos num diapositivo de notas podem ser especificados fora destas extensões, mas o diapositivo de notas tem uma superfície de fundo do tamanho especificado quando apresentado ou impresso. Este elemento destina-se a especificar a região para a qual o conteúdo é ajustado em qualquer formato especial de impressão que a aplicação possa optar por gerar, como um folheto de destaques.
Exemplo: considere a seguinte especificação do tamanho de um diapositivo de notas.
<p:presentation xmlns:a="" xmlns:r="" xmlns:p=""
embedTrueTypeFonts="1">
…
<p:notesSz cx="9144000" cy="6858000"/>
…
</p:presentation>
© ISO/IEC 29500: 2016
Classe DefaultTextStyle
A DefaultTextStyle
classe corresponde ao <defaultTextStyle/>
elemento . A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <defaultTextStyle/>
utilizado para representar o estilo de texto predefinido num documento PresentationML da seguinte forma:
Este elemento especifica os estilos de texto predefinidos que serão utilizados na apresentação. O estilo de texto definido aqui pode ser referenciado ao inserir um novo diapositivo se esse diapositivo não estiver associado a um diapositivo de master ou se não tiver sido especificada qualquer informação de estilo para o texto no diapositivo da apresentação.
© ISO/IEC 29500: 2016
Trabalhar com a Aula de Apresentação
Conforme mostrado no exemplo de código SDK Open XML que se segue, todas as instâncias da Presentation
classe estão associadas a uma instância da classe, que representa uma parte da PresentationPart apresentação, uma das partes necessárias de um pacote de ficheiros de apresentação PresentationML.
A Presentation
classe, que representa o <presentation/>
elemento, também está associada a uma série de outras classes que representam os elementos subordinados do <presentation/>
elemento. Entre estas classes, conforme mostrado no seguinte exemplo de código, estão as SlideMasterIdList
classes , SlideIdList
, SlideSize
, NotesSize
e DefaultTextStyle
.
Open XML SDK Code Example
O seguinte exemplo de código do artigo Procedimentos: Criar um documento de apresentação ao fornecer um nome de ficheiro utiliza o Create método da PresentationDocument classe do SDK Open XML para criar uma instância dessa mesma classe que tenha o nome e o caminho de ficheiro especificados. Em seguida, utiliza o AddPresentationPart método para adicionar uma instância da PresentationPart classe ao ficheiro de documento. Em seguida, cria uma instância da Presentation classe que representa a apresentação. Transmite uma referência à instância de PresentationPart
classe para o CreatePresentationParts
procedimento, que cria as outras partes necessárias do ficheiro de apresentação. O CreatePresentation
procedimento limpa fechando a instância de PresentationDocument
classe que abriu anteriormente.
O CreatePresentationParts
procedimento cria instâncias das SlideMasterIdList
classes , SlideIdList
, SlideSize
, NotesSize
e DefaultTextStyle
acrescenta-as à apresentação.
static void CreatePresentation(string filepath)
{
// Create a presentation at a specified file path. The presentation document type is pptx, by default.
using (PresentationDocument presentationDoc = PresentationDocument.Create(filepath, PresentationDocumentType.Presentation))
{
PresentationPart presentationPart = presentationDoc.AddPresentationPart();
presentationPart.Presentation = new Presentation();
CreatePresentationParts(presentationPart);
}
}
static void CreatePresentationParts(PresentationPart presentationPart)
{
SlideMasterIdList slideMasterIdList1 = new SlideMasterIdList(new SlideMasterId() { Id = (UInt32Value)2147483648U, RelationshipId = "rId1" });
SlideIdList slideIdList1 = new SlideIdList(new SlideId() { Id = (UInt32Value)256U, RelationshipId = "rId2" });
SlideSize slideSize1 = new SlideSize() { Cx = 9144000, Cy = 6858000, Type = SlideSizeValues.Screen4x3 };
NotesSize notesSize1 = new NotesSize() { Cx = 6858000, Cy = 9144000 };
DefaultTextStyle defaultTextStyle1 = new DefaultTextStyle();
presentationPart.Presentation.Append(slideMasterIdList1, slideIdList1, slideSize1, notesSize1, defaultTextStyle1);
SlidePart slidePart1;
SlideLayoutPart slideLayoutPart1;
SlideMasterPart slideMasterPart1;
ThemePart themePart1;
slidePart1 = CreateSlidePart(presentationPart);
slideLayoutPart1 = CreateSlideLayoutPart(slidePart1);
slideMasterPart1 = CreateSlideMasterPart(slideLayoutPart1);
themePart1 = CreateTheme(slideMasterPart1);
slideMasterPart1.AddPart(slideLayoutPart1, "rId1");
presentationPart.AddPart(slideMasterPart1, "rId1");
presentationPart.AddPart(themePart1, "rId5");
}
Apresentação ResultanteML
Quando o código SDK Open XML é executado, o seguinte XML é escrito no documento PresentationML referenciado no código.
<?xml version="1.0" encoding="utf-8" ?>
<p:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
<p:sldMasterIdLst>
<p:sldMasterId id="2147483648" r:id="rId1" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
</p:sldMasterIdLst>
<p:sldIdLst>
<p:sldId id="256" r:id="rId2" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
</p:sldIdLst>
<p:sldSz cx="9144000" cy="6858000" type="screen4x3"/>
<p:notesSz cx="6858000" cy="9144000"/>
<p:defaultTextStyle/>
</p:presentation>
Confira também
Acerca do SDK Open XML para o Office
Como: Criar um documento de apresentação ao fornecer um nome de ficheiro
Como: Inserir um novo diapositivo numa apresentação
Procedimentos: Eliminar um diapositivo de uma apresentação
Como: Obter o número de diapositivos num documento de apresentação