Trabajar con presentaciones
En este tema se describe la clase Open XML SDK for Office Presentation y cómo se relaciona con el esquema PresentationML de formato de archivo Open XML. Para obtener más información sobre la estructura general de las partes y elementos que componen un documento PresentationML, vea Estructura de un documento PresentationML.
Presentaciones en PresentationML
La especificación ISO/IEC 29500 describe al elemento de PresentationML de Office Open XML <presentation/>
, que se usa para representar una presentación en un documento PresentationML de la siguiente manera:
Dentro de este elemento se especifican las propiedades fundamentales de toda la presentación.
Ejemplo: Considere la siguiente presentación con un solo patrón de diapositivas y dos diapositivas. Además de estos elementos usados comúnmente, puede existir la especificación de otras propiedades, como tamaño de diapositiva, tamaño de notas y estilos de texto predeterminados.
<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
El atributo <presentation/>
normalmente contiene elementos secundarios que enumeran los patrones de diapositivas, las diapositivas y las presentaciones con diapositivas personalizadas que contiene la presentación. Además, también suele contener elementos que especifican otras propiedades de la presentación, como tamaño de diapositiva, tamaño de notas y estilos de texto predeterminados.
El atributo <presentation/>
es el elemento raíz de la parte Presentation de PresentationML. Para obtener más información acerca de la estructura global de las partes y los elementos que conforman un documento PresentationML, vea Estructura de un documento PresentationML.
En la tabla siguiente se enumeran algunos de los elementos secundarios más comunes del <presentation/>
elemento usado al trabajar con presentaciones y las clases del SDK de Open XML que se corresponden con ellas.
Elemento de PresentationML | Open XML SDK (clase) |
---|---|
<sldMasterIdLst/> |
SlideMasterIdList |
<sldMasterId/> |
SlideMasterId |
<sldIdLst/> |
SlideIdList |
<sldId/> |
SlideId |
<notesMasterIdLst/> |
NotesMasterIdList |
<handoutMasterIdLst/> |
SlideMasterIdList |
<custShowLst/> |
CustomShowList |
<sldSz/> |
SlideSize |
<notesSz/> |
<xrefDocumentFormat.OpenXml.Presentation.NotesSize> |
<defaultTextStyle/> |
DefaultTextStyle |
Clase de presentación del SDK de Open XML
La clase SDK Presentation
de Open XML representa el <presentation/>
elemento definido en el esquema de formato de archivo Open XML para documentos PresentationML. Use la Presentation
clase para manipular un elemento individual <presentation/>
en un documento PresentationML.
Las clases asociadas normalmente a la Presentation
clase se muestran en las secciones siguientes.
Clase SlideMasterIdList
Todas las diapositivas que comparten el mismo patrón heredan de él el mismo diseño. La SlideMasterIdList
clase corresponde al <sldMasterIdList/>
elemento . La especificación ISO/IEC 29500 describe el elemento PresentationML <sldMasterIdList/>
de Open XML que se usa para representar una lista de identificadores de patrón de diapositivas en un documento PresentationML de la siguiente manera:
Este elemento especifica una lista de información de identificación de las diapositivas de patrón de diapositivas que están disponibles dentro de la presentación correspondiente. Un patrón de diapositivas es una diapositiva diseñada específicamente para que sea una plantilla para todas las diapositivas de diseño secundarias relacionadas.
© ISO/IEC 29500: 2016
Clase SlideMasterId
La SlideMasterId
clase corresponde al <sldMasterId/>
elemento . La especificación ISO/IEC 29500 describe el elemento PresentationML <sldMasterId/>
de Open XML que se usa para representar un identificador de patrón de diapositivas en un documento PresentationML de la siguiente manera:
Este elemento especifica un patrón de diapositivas que está disponible dentro de la presentación correspondiente. Un patrón de diapositivas es una diapositiva diseñada específicamente para que sea una plantilla para todas las diapositivas de diseño secundarias relacionadas.
Ejemplo: Considere la siguiente especificación de un patrón de diapositivas dentro de una presentación
<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
Clase SlideIdList
La SlideIdList
clase corresponde al <sldIdLst/>
elemento . La especificación ISO/IEC 29500 describe el elemento PresentationML <sldIdLst/>
de Open XML que se usa para representar una lista de identificadores de diapositiva en un documento PresentationML de la siguiente manera:
Este elemento especifica una lista de información de identificación de las diapositivas que están disponibles dentro de la presentación correspondiente. Una diapositiva contiene la información que es específica de una única diapositiva, como la información de forma y texto específica de la diapositiva.
© ISO/IEC 29500: 2016
Clase SlideId
La SlideId
clase corresponde al <sldId/>
elemento . La especificación ISO/IEC 29500 describe el elemento PresentationML <sldId/>
de Open XML que se usa para representar un identificador de diapositiva en un documento PresentationML de la siguiente manera:
Este elemento especifica una diapositiva de presentación que está disponible dentro de la presentación correspondiente. Una diapositiva contiene la información que es específica de una única diapositiva, como la información de forma y texto específica de la diapositiva.
Ejemplo: Considere la siguiente especificación de un patrón de diapositivas dentro de una presentación
<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
Clase NotesMasterIdList
La NotesMasterIdList
clase corresponde al <notesMasterIdLst/>
elemento . La especificación ISO/IEC 29500 describe el elemento PresentationML <notesMasterIdLst/>
de Open XML que se usa para representar una lista de identificadores maestros de notas en un documento PresentationML de la siguiente manera:
Este elemento especifica una lista de información de identificación de las diapositivas de patrón de notas que están disponibles dentro de la presentación correspondiente. Un patrón de notas es una diapositiva diseñada específicamente para imprimir la diapositiva junto con las notas adjuntas.
© ISO/IEC 29500: 2016
Clase HandoutMasterIdList
La HandoutMasterIdList
clase corresponde al <handoutMasterIdLst/>
elemento . La especificación ISO/IEC 29500 describe el elemento PresentationML <handoutMasterIdLst/>
de Open XML que se usa para representar una lista de identificadores maestros de documentos en un documento PresentationML de la siguiente manera:
Este elemento especifica una lista de información de identificación de las diapositivas de patrón de documentos que están disponibles dentro de la presentación correspondiente. Un patrón de documentos es una diapositiva diseñada específicamente para imprimir como un documento.
© ISO/IEC 29500: 2016
Clase CustomShowList
La CustomShowList
clase corresponde al <custShowLst/>
elemento . La especificación ISO/IEC 29500 describe el elemento PresentationML <custShowLst/>
de Open XML que se usa para representar una lista de presentación personalizada en un documento PresentationML de la siguiente manera:
Este elemento especifica una lista de todas las presentaciones personalizadas que están disponibles dentro de la presentación correspondiente. Una presentación personalizada es una secuencia de diapositivas definida, que permite visualizar las diapositivas con la presentación en un orden arbitrario.
© ISO/IEC 29500: 2016
Clase SlideSize
La SlideSize
clase corresponde al <sldSz/>
elemento . La especificación ISO/IEC 29500 describe el elemento PresentationML <sldSz/>
de Open XML que se usa para representar el tamaño de la diapositiva de presentación en un documento PresentationML de la siguiente manera:
Este elemento especifica el tamaño de la superficie de las diapositivas de presentación. Los objetos dentro de una diapositiva de presentación se pueden especificar fuera de estos límites, pero este es el tamaño de la superficie de fondo, que se muestra cuando se presenta o imprime la diapositiva.
Ejemplo: considere la siguiente especificación del tamaño de una diapositiva de presentación.
<p:presentation xmlns:a="" xmlns:r="" xmlns:p=""
embedTrueTypeFonts="1">
…
<p:sldSz cx="9144000" cy="6858000" type="screen4x3"/>
…
</p:presentation>
© ISO/IEC 29500: 2016
Clase NotesSize
La NotesSize
clase corresponde al <notesSz/>
elemento . La especificación ISO/IEC 29500 describe el elemento PresentationML <notesSz/>
de Open XML que se usa para representar el tamaño de la diapositiva de notas en un documento PresentationML de la siguiente manera:
Este elemento especifica el tamaño de la superficie de la diapositiva que se usa para diapositivas de notas y diapositivas de documentos. Los objetos de una diapositiva de notas se pueden especificar fuera de estos límites; sin embargo, cuando se presenta o imprime la diapositiva, la superficie de fondo es del tamaño especificado. Este elemento está pensado para especificar la región a la que se ajusta el contenido en cualquier formato especial de copia impresa que la aplicación elija generar, como un documento de esquema.
Ejemplo: considere la siguiente especificación del tamaño de una diapositiva de notas.
<p:presentation xmlns:a="" xmlns:r="" xmlns:p=""
embedTrueTypeFonts="1">
…
<p:notesSz cx="9144000" cy="6858000"/>
…
</p:presentation>
© ISO/IEC 29500: 2016
Clase DefaultTextStyle
La DefaultTextStyle
clase corresponde al <defaultTextStyle/>
elemento . La especificación ISO/IEC 29500 describe al elemento de PresentationML de Office Open XML <defaultTextStyle/>
, que se usa para representar un estilo de texto predeterminado en un documento PresentationML de la siguiente manera:
Este elemento especifica los estilos de texto predeterminados que se deben usar en la presentación. Se puede hacer referencia al estilo de texto definido aquí al insertar una diapositiva nueva, si no está asociada con una diapositiva patrón o si no se ha especificado información de estilo distinta para el texto de la diapositiva de presentación.
© ISO/IEC 29500: 2016
Trabajar con la clase Presentation
Como se muestra en el ejemplo de código del SDK de Open XML que sigue, cada instancia de la Presentation
clase está asociada a una instancia de la PresentationPart clase , que representa una parte de presentación, una de las partes necesarias de un paquete de archivo de presentación PresentationML.
Por Presentation
lo tanto, la clase , que representa el <presentation/>
elemento , también está asociada a una serie de otras clases que representan los elementos secundarios del <presentation/>
elemento . Entre estas clases, como se muestra en el ejemplo de código siguiente, se encuentran las SlideMasterIdList
clases , SlideIdList
, SlideSize
, NotesSize
y DefaultTextStyle
.
Ejemplo de código de Open XML SDK 2.0
El siguiente ejemplo de código del artículo How to: Create a presentation document by providing a file name usa el Create método de la PresentationDocument clase del SDK de Open XML para crear una instancia de esa misma clase que tenga el nombre y la ruta de acceso de archivo especificados. A continuación, usa el AddPresentationPart método para agregar una instancia de la PresentationPart clase al archivo de documento. A continuación, crea una instancia de la Presentation clase que representa la presentación. Pasa una referencia a la instancia de clase PresentationPart
al CreatePresentationParts
procedimiento , que crea las demás partes necesarias del archivo de presentación. El CreatePresentation
procedimiento se limpia cerrando la PresentationDocument
instancia de clase que abrió anteriormente.
El CreatePresentationParts
procedimiento crea instancias de las SlideMasterIdList
clases , SlideIdList
, SlideSize
, NotesSize
y y DefaultTextStyle
las anexa a la presentación.
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");
}
PresentationML resultante
Cuando se ejecuta el código del SDK de Open XML, se escribe el XML siguiente en el documento PresentationML al que se hace referencia en el 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>
Recursos adicionales
Acerca del SDK de Open XML para Office
Cómo: Crear un documento de presentación proporcionando un nombre de archivo
Procedimiento para insertar una nueva diapositiva en una presentación
Procedimiento para eliminar una diapositiva de una presentación
Procedimiento para recuperar el número de diapositivas de un documento de presentación