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 Presentation e como ele se relaciona com o esquema PresentationML do Open XML File Format. 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 em PresentationML
A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <presentation/> usado para representar uma apresentação em um documento PresentationML da seguinte maneira:
Esse elemento especifica dentro dele propriedades fundamentais de toda a apresentação.
Exemplo: Considere a apresentação a seguir com um único slide master e dois slides. Além desses elementos comumente usados, também pode haver a especificação de outras propriedades, como tamanho do slide, tamanho das anotações e estilos de texto padrão.
<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
O <presentation/> elemento normalmente contém elementos filho que listam slides mestres, slides e apresentações de slides personalizadas contidas na apresentação. Além disso, ele também costuma conter elementos que especificam outras propriedades da apresentação, como tamanho do slide, tamanho das anotações e estilos de texto padrão.
O <presentation/> elemento é o elemento raiz da parte de 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 a seguir lista alguns dos elementos filho mais comuns do <presentation/> elemento usado ao trabalhar com apresentações e as classes Open XML SDK que correspondem a eles.
| Elemento PresentationML | Classe Open XML SDK |
|---|---|
<sldMasterIdLst/> |
SlideMasterIdList |
<sldMasterId/> |
SlideMasterId |
<sldIdLst/> |
SlideIdList |
<sldId/> |
SlideId |
<notesMasterIdLst/> |
NotesMasterIdList |
<handoutMasterIdLst/> |
SlideMasterIdList |
<custShowLst/> |
CustomShowList |
<sldSz/> |
SlideSize |
<notesSz/> |
<xrefDocumentFormat.OpenXml.Presentation.NotesSize> |
<defaultTextStyle/> |
DefaultTextStyle |
Classe de apresentação do Open XML SDK
A classe Open XML SDK Presentation representa o <presentation/> elemento definido no esquema Open XML File Format para documentos PresentationML. Use a Presentation classe para manipular um elemento individual <presentation/> em um documento PresentationML.
As classes comumente associadas à Presentation classe são mostradas nas seções a seguir.
Classe SlideMasterIdList
Todos os slides que compartilham o mesmo master herdam o mesmo layout desse master. A SlideMasterIdList classe corresponde ao <sldMasterIdList/> elemento. A especificação ISO/IEC 29500 descreve o elemento Open XML PresentationML <sldMasterIdList/> usado para representar uma lista de ID de slide master em um documento PresentationML da seguinte maneira:
Esse elemento especifica uma lista de informações de identificação para o slide master slides que estão disponíveis na apresentação correspondente. Um slide master é um slide projetado especificamente para ser um modelo para todos os slides de layout filho relacionados.
© ISO/IEC 29500: 2016
Classe SlideMasterId
A SlideMasterId classe corresponde ao <sldMasterId/> elemento. A ISO/IEC 29500 descreve o elemento Open XML PresentationML <sldMasterId/> usado para representar uma ID de slide master em um documento PresentationML da seguinte maneira:
Esse elemento especifica um slide master que está disponível na apresentação correspondente. Um slide master é um slide projetado especificamente para ser um modelo para todos os slides de layout filho relacionados.
Exemplo: considere a seguinte especificação de um slide master em uma 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 ISO /IEC 29500 descreve o elemento Open XML PresentationML <sldIdLst/> usado para representar uma lista de ID de slide em um documento PresentationML da seguinte maneira:
Esse elemento especifica uma lista de informações de identificação para os slides que estão disponíveis na apresentação correspondente. Um slide contém as informações específicas de um único slide, como informações de texto e forma específicas do slide.
© ISO/IEC 29500: 2016
Classe SlideId
A SlideId classe corresponde ao <sldId/> elemento. A ISO /IEC 29500 descreve o elemento Open XML PresentationML <sldId/> usado para representar uma ID de slide em um documento PresentationML da seguinte maneira:
Esse elemento especifica um slide de apresentação que está disponível na apresentação correspondente. Um slide contém as informações específicas de um único slide, como informações de texto e forma específicas do slide.
Exemplo: considere a seguinte especificação de um slide master em uma 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 ISO/IEC 29500 descreve o elemento Open XML PresentationML <notesMasterIdLst/> usado para representar uma lista de Notes Master ID em um documento PresentationML da seguinte maneira:
Esse elemento especifica uma lista de informações de identificação para os slides master de anotações que estão disponíveis na apresentação correspondente. Um anotações master é um slide projetado especificamente para a impressão do slide junto com quaisquer anotações anexadas.
© ISO/IEC 29500: 2016
Classe HandoutMasterIdList
A HandoutMasterIdList classe corresponde ao <handoutMasterIdLst/> elemento. A ISO/IEC 29500 descreve o elemento Open XML PresentationML <handoutMasterIdLst/> usado para representar uma lista de master ID de folheto em um documento PresentationML da seguinte maneira:
Esse elemento especifica uma lista de informações de identificação para o folheto master slides que estão disponíveis na apresentação correspondente. Um folheto master é um slide projetado especificamente para ser impresso 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/> usado para representar uma lista de apresentação personalizada em um documento PresentationML da seguinte maneira:
Esse elemento especifica uma lista de todas as apresentações personalizadas disponíveis na apresentação correspondente. Uma apresentação personalizada é uma sequência de slides definida que permite a exibição dos slides com a apresentação em qualquer ordem arbitrária.
© ISO/IEC 29500: 2016
Classe SlideSize
A SlideSize classe corresponde ao <sldSz/> elemento. A ISO /IEC 29500 descreve o elemento Open XML PresentationML <sldSz/> usado para representar o tamanho do slide de apresentação em um documento PresentationML da seguinte maneira:
Esse elemento especifica o tamanho da superfície do slide de apresentação. Os objetos em um slide de apresentação podem ser especificados fora dessas extensões, mas esse é o tamanho da superfície da tela de fundo mostrada quando o slide é apresentado ou impresso.
Exemplo: considere a seguinte especificação do tamanho de um slide 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 ISO /IEC 29500 descreve o elemento Open XML PresentationML <notesSz/> usado para representar o tamanho do slide de anotações em um documento PresentationML da seguinte maneira:
Esse elemento especifica o tamanho da superfície do slide usada para slides de anotações e slides de folheto. Os objetos em um slide de anotações podem ser especificados fora dessas extensões, mas o slide de anotações tem uma superfície de plano de fundo do tamanho especificado quando apresentado ou impresso. Esse elemento destina-se a especificar a região na qual o conteúdo é ajustado em qualquer formato especial de impressão que o aplicativo possa optar por gerar, como um folheto de estrutura de tópicos.
Exemplo: considere a seguinte especificação do tamanho de um slide de anotações.
<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 ISO /IEC 29500 descreve o elemento Open XML PresentationML <defaultTextStyle/> usado para representar o estilo de texto padrão em um documento PresentationML da seguinte maneira:
Esse elemento especifica os estilos de texto padrão que devem ser usados na apresentação. O estilo de texto definido aqui pode ser referenciado ao inserir um novo slide se esse slide não estiver associado a um slide master ou se nenhuma informação de estilo tiver sido especificada de outra forma para o texto no slide da apresentação.
© ISO/IEC 29500: 2016
Trabalhando com a classe de apresentação
Conforme mostrado no exemplo de código do Open XML SDK a seguir, cada instância da Presentation classe está associada a uma instância da PresentationPart classe, que representa uma parte de apresentação, uma das partes necessárias de um pacote de arquivos de apresentação PresentationML.
A Presentation classe, que representa o <presentation/> elemento, também está, portanto, associada a uma série de outras classes que representam os elementos filho do <presentation/> elemento. Entre essas classes, conforme mostrado no exemplo de código a seguir, estão as SlideMasterIdListclasses , SlideIdList, SlideSizeNotesSizee DefaultTextStyle .
Exemplo de código do Open XML SDK
O seguinte exemplo de código do artigo Como criar um documento de apresentação fornecendo um nome de arquivo usa o CreatePresentationDocument método da classe do Open XML SDK para criar uma instância dessa mesma classe que tem o nome e o caminho de arquivo especificados. Em seguida, ele usa o AddPresentationPart método para adicionar uma instância da PresentationPart classe ao arquivo do documento. Em seguida, ele cria uma instância da Presentation classe que representa a apresentação. Ele passa uma referência à PresentationPart instância de classe para o CreatePresentationParts procedimento, que cria as outras partes necessárias do arquivo de apresentação. O CreatePresentation procedimento limpa fechando a instância de PresentationDocument classe que foi aberta anteriormente.
O CreatePresentationParts procedimento cria instâncias das SlideMasterIdListclasses , SlideIdList, SlideSize, NotesSize, e DefaultTextStyle anexa-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);
string slideLayoutPart1RelId = slidePart1.GetIdOfPart(slideLayoutPart1);
slideMasterPart1 = CreateSlideMasterPart(slideLayoutPart1);
themePart1 = CreateTheme(slideMasterPart1);
slideMasterPart1.AddPart(slideLayoutPart1, "rId1");
presentationPart.AddPart(slideMasterPart1, "rId1");
presentationPart.AddPart(themePart1, "rId5");
}
PresentationML resultante
Quando o código do Open XML SDK é executado, o XML a seguir é gravado 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
Sobre o Open XML SDK para Office
Como criar um documento de apresentação fornecendo um nome de arquivo
Como inserir um novo slide em uma apresentação
Como excluir um slide de uma apresentação
Como recuperar o número de slides em um documento de apresentação