Share via


Trabajar con diapositivas patrón de documentos

En este tema se describe la clase HandoutMaster del SDK de Open XML para Office 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 Open XML que se usa para representar una diapositiva maestra de documentos en un documento PresentationML de la siguiente manera:

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/IEC29500: 2008.

En la tabla siguiente se enumeran los elementos secundarios del <elemento handoutMaster> 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 HandoutMaster del SDK de Open XML representa el <elemento handoutMaster> definido en el esquema de formato de archivo Open XML para documentos PresentationML. Use la clase HandoutMaster para manipular elementos handoutMaster> individuales <en un documento PresentationML.

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

Clase ColorMap

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

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

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 común de propiedades que son independientes del tipo de diapositiva; la descripción de estas propiedades para cualquier diapositiva determinada 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; es solo el tipo de información almacenada que es común en todas las diapositivas.

Clase ExtensionListWithModification

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

Este elemento especifica la lista de extensiones con capacidad de modificación en la que se definen todas las extensiones futuras 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 clase HeaderFooter corresponde al <elemento hf> . La siguiente información de la especificación ISO/IEC 29500 presenta el <elemento hf> :

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 clase HandoutMaster está asociada a una instancia de la clase HandoutMasterPart , 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.

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

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 claseHandoutMaster del SDK de Open XML en la nueva parte maestra de documentos. El constructor de la clase HandoutMaster crea instancias de las clases CommonSlideData y ColorMap. El constructor de clase CommonSlideData crea una instancia de la clase ShapeTree , cuyo constructor, a su vez, crea instancias de clase adicionales: una instancia de la clase NonVisualGroupShapeProperties , una instancia de la clase GroupShapeProperties y una instancia de la clase Shape .

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

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Drawing;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Presentation;
using D = DocumentFormat.OpenXml.Drawing;
using P = DocumentFormat.OpenXml.Presentation;

static HandoutMasterPart CreateHandoutMasterPart(PresentationPart presentationPart)
{
    HandoutMasterPart handoutMasterPart1 = presentationPart.AddNewPart<HandoutMasterPart>("rId3");
    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;
}