Compartir a través de


Trabajar con diapositivas patrón de documentos

En este tema se describe la clase Open XML SDK for Office HandoutMaster 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.

Diapositivas de patrón de documentos en PresentationML

La especificación ISO/IEC 29500 describe el elemento <handoutMaster/> de PresentationML de Office Open XML que se usa para representar una diapositiva de patrón de documentos en un documento PresentationML de la siguiente forma:

Este elemento especifica una instancia de una diapositiva de patrón de documentos. Dentro de una diapositiva de patrón de documentos se incluyen todos los elementos que describen los objetos y su formato correspondiente dentro de una diapositiva de documentos. Dentro de una diapositiva de patrón de documentos el elemento cSld especifica los elementos comunes de la diapositiva, como las formas y sus cuerpos de texto adjunto. Hay otras propiedades dentro de una diapositiva de patrón de documentos, pero cSld abarca la mayor parte de la finalidad prevista de una diapositiva handoutMaster.

© ISO/IEC 29500: 2016

En la tabla siguiente se enumeran los elementos secundarios del <handoutMaster/> elemento que se usan al trabajar con diapositivas maestras de documentos y las clases del SDK de Open XML que se corresponden con ellas.

Elemento de PresentationML Open XML SDK (clase)
<ClrMap/> ColorMap
<cSld/> CommonSlideData
<extLst/> ExtensionListWithModification
<hf/> HeaderFooter

Clase HandoutMaster del SDK de Open XML

La clase SDK HandoutMaster de Open XML representa el <handoutMaster/> elemento definido en el esquema de formato de archivo Open XML para documentos PresentationML. Use la HandoutMaster clase para manipular elementos individuales <handoutMaster/> en un documento PresentationML.

Las clases asociadas normalmente a la HandoutMaster clase se muestran en las secciones siguientes.

Clase ColorMap

La ColorMap clase corresponde al <ClrMap/> elemento . La siguiente información de la especificación ISO/IEC 29500 presenta el <ClrMap/> elemento :

Este elemento especifica la capa de asignación que transforma una definición de combinación de colores en otra. Cada atributo representa un nombre de color al que se puede hacer referencia en este patrón, y el valor es el color correspondiente en el tema.

Ejemplo: considere la siguiente asignación de colores que se aplica a un patrón de diapositivas:

<p:clrMap bg1="dk1" tx1="lt1" bg2="dk2" tx2="lt2" accent1="accent1"  
accent2="accent2" accent3="accent3" accent4="accent4"
accent5="accent5"  
accent6="accent6" hlink="hlink" folHlink="folHlink"/>

Clase CommonSlideData

La CommonSlideData clase corresponde al <cSld/> elemento . La siguiente información de la especificación ISO/IEC 29500 presenta el <cSld/> elemento :

Este elemento especifica un contenedor para el tipo de información sobre diapositivas que es pertinente a todos los tipos de diapositiva. Todas las diapositivas comparten un conjunto de propiedades común, que es independiente del tipo de diapositiva; la descripción de estas propiedades para una diapositiva específica se almacena en el contenedor <cSld/> de la diapositiva. Los datos de la diapositiva específicos del tipo de diapositiva, que indica el elemento primario, se almacenan en otro lugar.

Los datos reales de <cSld/> describen solo la diapositiva primaria determinada; solo el tipo de información almacenada es común a todas las diapositivas.

Clase ExtensionListWithModification

La ExtensionListWithModification clase corresponde al <extLst/> elemento . La siguiente información de

ISO/IEC 29500

especificación presenta el <extLst/> elemento :

Este elemento especifica la lista de extensiones con capacidad de modificación, en la cual se definen todas las futuras extensiones del tipo de elemento <ext/>. La lista de extensiones, junto con las extensiones futuras correspondientes, se usa para ampliar la capacidad de almacenamiento del marco PresentationML. Esto permite que se almacenen en el marco diversos tipos de datos nuevos de forma nativa.

Nota:

El uso de este elemento extLst permite a la aplicación generadora almacenar si se ha modificado esta propiedad de extensión.

Clase HeaderFooter

La HeaderFooter clase corresponde al <hf/> elemento . La siguiente información de la especificación ISO/IEC 29500 presenta el <hf/> elemento :

Este elemento especifica la información de los encabezados y pies de página de una diapositiva. Los encabezados y pies de página constan de marcadores de posición para texto que debe ser coherente a lo largo de todas las diapositivas, como una fecha y hora, numeración de diapositivas y encabezados y pies de página personalizados.

Trabajar con la clase HandoutMaster

Como se muestra en el ejemplo de código del SDK de Open XML que sigue, cada instancia de la HandoutMaster clase está asociada a una instancia de la HandoutMasterPart clase, que representa una parte maestra de documentos, una de las partes de un paquete de archivo de presentación PresentationML y una parte necesaria para un archivo de presentación que contiene documentos.

Por HandoutMaster lo tanto, la clase , que representa el <handoutMaster/> elemento , también está asociada a una serie de otras clases que representan los elementos secundarios del <handoutMaster/> elemento . Entre estas clases, como se muestra en el ejemplo de código siguiente, se encuentran la CommonSlideData clase, la ColorMap clase, la ShapeTree clase y la Shape clase .

Ejemplo de código de Open XML SDK 2.0

El método siguiente agrega un nuevo elemento maestro de documentos a una presentación existente y crea una instancia de una clase del SDK HandoutMaster de Open XML en la nueva parte maestra de documentos. El HandoutMaster constructor de clase crea instancias de la CommonSlideData clase y la ColorMap clase . El CommonSlideData constructor de clase crea una instancia de la ShapeTree clase , cuyo constructor, a su vez, crea instancias de clase adicionales: una instancia de la NonVisualGroupShapeProperties clase, una instancia de la GroupShapeProperties clase y una instancia de la Shape clase .

El espacio de nombres representado por la letra P del código es el espacio de nombres.

static HandoutMasterPart CreateHandoutMasterPart(PresentationPart presentationPart)
{
    HandoutMasterPart handoutMasterPart1 = presentationPart.AddNewPart<HandoutMasterPart>();
    handoutMasterPart1.HandoutMaster = new HandoutMaster(
                    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 = "Title 1" },
                                    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() { Language = "en-US" }))))),
                            new P.ColorMap()
                            {
                                Background1 = D.ColorSchemeIndexValues.Light1,
                                Text1 = D.ColorSchemeIndexValues.Dark1,
                                Background2 = D.ColorSchemeIndexValues.Light2,
                                Text2 = D.ColorSchemeIndexValues.Dark2,
                                Accent1 = D.ColorSchemeIndexValues.Accent1,
                                Accent2 = D.ColorSchemeIndexValues.Accent2,
                                Accent3 = D.ColorSchemeIndexValues.Accent3,
                                Accent4 = D.ColorSchemeIndexValues.Accent4,
                                Accent5 = D.ColorSchemeIndexValues.Accent5,
                                Accent6 = D.ColorSchemeIndexValues.Accent6,
                                Hyperlink = D.ColorSchemeIndexValues.Hyperlink,
                                FollowedHyperlink = D.ColorSchemeIndexValues.FollowedHyperlink
                            });

    return handoutMasterPart1;
}