Compartir a través de


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 SlideMasterIdListclases , SlideIdList, SlideSize, NotesSizey 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 SlideMasterIdListclases , SlideIdList, SlideSize, NotesSizey 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

Procedimiento para aplicar un tema a una presentación