Share via


Trabajar con diapositivas de notas

En este tema se describe la clase NotesSlide del SDK de Open XML para Office y cómo se relaciona con el esquema PresentationML de formato de archivo Open XML.


Diapositivas de notas en PresentationML

La especificación ISO/IEC 29500 describe el elemento de notas> PresentationML <de Open XML que se usa para representar diapositivas de notas en un documento PresentationML de la siguiente manera:

Este elemento especifica la existencia de una diapositiva de notas junto con sus datos correspondientes. Dentro de una diapositiva de notas se encuentran todos los elementos de diapositivas comunes, junto con otras propiedades que son específicas del elemento de notas.

Ejemplo: tenga en cuenta la siguiente diapositiva de notas presentationML:

<p:notes>  
    <p:cSld>  
        …  
    </p:cSld>  
    …  
</p:notes>

En el ejemplo anterior, un elemento de notas especifica la existencia de una diapositiva de notas con todas sus partes. Tenga en cuenta el elemento cSld, que especifica los elementos comunes que pueden aparecer en cualquier tipo de diapositiva y, también, todos los elementos que especifican otras propiedades que no son comunes para esta diapositiva de notas.

© ISO/IEC29500: 2008.

El <elemento notes> es el elemento raíz de la parte diapositiva de notas PresentationML. Para obtener más información acerca de la estructura global de los elementos que conforman un documento PresentationML, vea Estructura de un documento PresentationML.

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

Elemento de PresentationML Open XML SDK (clase)
<clrMapOvr> ColorMapOverride
<cSld> CommonSlideData
<extLst> ExtensionListWithModification

En la tabla siguiente de la especificación ISO/IEC 29500 se describen los atributos del <elemento notes> .

Atributos Descripción
showMasterPhAnim (Mostrar animaciones en marcadores de posición del patrón) Especifica si se deben mostrar o no animaciones en los marcadores de posición de la diapositiva patrón.
El tipo de datos boolean del esquema XML W3C define los valores posibles para este atributo.
showMasterSp (Mostrar formas patrón) Especifica si se deben mostrar o no formas en la diapositiva patrón.
El tipo de datos boolean del esquema XML W3C define los valores posibles para este atributo.

© ISO/IEC29500: 2008.


Notas del SDK de Open XMLSlide (clase)

La clase NotesSlide del SDK de OXML representa el <elemento notes> definido en el esquema de formato de archivo Open XML para documentos PresentationML. Use la clase NotesSlide para manipular elementos de notas> individuales <en un documento PresentationML.

Las clases que representan elementos secundarios del <elemento notes> y que, por lo tanto, suelen asociarse a la clase NotesSlide se muestran en la lista siguiente.

Clase ColorMapOverride

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

Este elemento proporciona un mecanismo con el que invalidar las combinaciones de colores enumeradas en el <elemento ClrMap> . Si el <elemento secundario masterClrMapping> está presente, se usa la combinación de colores definida por el patrón. Si el <elemento secundario overrideClrMapping> está presente, define una nueva combinación de colores específica de la diapositiva de notas primarias, la diapositiva de presentación o el diseño de diapositivas.

© ISO/IEC29500: 2008.

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.

© ISO/IEC29500: 2008.

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 que la aplicación que lo genera almacene si se ha modificado la propiedad Extension. Fin de la nota]

© ISO/IEC29500: 2008.


Trabajar con la clase NotesSlide

Como se muestra en el ejemplo de código del SDK de Open XML que sigue, cada instancia de la clase NotesSlide está asociada a una instancia de la clase NotesSlidePart , que representa una parte de diapositiva de notas, una de las partes de un paquete de archivo de presentación PresentationML y una parte necesaria para cada diapositiva de notas de un archivo de presentación. Cada instancia de clase NotesSlide también puede estar asociada a una instancia de la clase NotesMaster , que a su vez está asociada a un elemento de presentación con nombre similar, representado por la clase NotesMasterPart .

Por lo tanto, la clase NotesSlide , que representa el <elemento notes> , también está asociada a una serie de otras clases que representan los elementos secundarios del <elemento notes> . Entre estas clases, como se indica en el siguiente ejemplo de código, se encuentran las clases CommonSlideData y ColorMapOverride. La clase ShapeTree y las clases Shape están a su vez asociadas a la clase CommonSlideData .


Ejemplo de código de Open XML SDK 2.0

El método siguiente agrega una nueva parte de diapositiva de notas a una presentación existente y crea una instancia de una claseNotesSlide del SDK de Open XML en la nueva parte de diapositiva de notas. El constructor de la clase NotesSlide 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 P = DocumentFormat.OpenXml.Presentation;

static NotesSlidePart CreateNotesSlidePart(SlidePart slidePart1)
{
    NotesSlidePart notesSlidePart1 = slidePart1.AddNewPart<NotesSlidePart>("rId6");
    NotesSlide notesSlide = new NotesSlide(
    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 = "" },
        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()))))),
    new ColorMapOverride(new MasterColorMapping()));
    notesSlidePart1.NotesSlide = notesSlide;
    return notesSlidePart1;
}

PresentationML generado

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:notes xmlns:p="https://schemas.openxmlformats.org/presentationml/2006/main">
      <p:cSld>
        <p:spTree>
          <p:nvGrpSpPr>
            <p:cNvPr id="1"
                     name="" />
            <p:cNvGrpSpPr />
            <p:nvPr />
          </p:nvGrpSpPr>
          <p:grpSpPr>
            <a:xfrm xmlns:a="https://schemas.openxmlformats.org/drawingml/2006/main" />
          </p:grpSpPr>
          <p:sp>
            <p:nvSpPr>
              <p:cNvPr id="2"
                       name="" />
              <p:cNvSpPr>
                <a:spLocks noGrp="1"
                           xmlns:a="https://schemas.openxmlformats.org/drawingml/2006/main" />
              </p:cNvSpPr>
              <p:nvPr>
                <p:ph />
              </p:nvPr>
            </p:nvSpPr>
            <p:spPr />
            <p:txBody>
              <a:bodyPr xmlns:a="https://schemas.openxmlformats.org/drawingml/2006/main" />
              <a:lstStyle xmlns:a="https://schemas.openxmlformats.org/drawingml/2006/main" />
              <a:p xmlns:a="https://schemas.openxmlformats.org/drawingml/2006/main">
                <a:endParaRPr />
              </a:p>
            </p:txBody>
          </p:sp>
        </p:spTree>
      </p:cSld>
      <p:clrMapOvr>
        <a:masterClrMapping xmlns:a="https://schemas.openxmlformats.org/drawingml/2006/main" />
      </p:clrMapOvr>
    </p:notes>

Vea también

Acerca del SDK de Open XML para Office

Procedimiento para 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 aplicar un tema a una presentación