Arbeiten mit Notizenfolien
In diesem Thema wird die NotesSlide-Klasse des Open XML SDK für Office und ihre Beziehung zum PresentationML-Schema des Open XML-Dateiformats erläutert.
Notizenfolien in PresentationML
Die ISO/IEC 29500-Spezifikation beschreibt das Open XML PresentationML <Notes-Element> , das zur Darstellung von Notizenfolien in einem PresentationML-Dokument verwendet wird, wie folgt:
Dieses Element gibt das Vorhandensein einer Notizenfolie zusammen mit den entsprechenden Daten an. Auf einer Notizenfolie befinden sich alle allgemeinen Folienelemente sowie weitere Eigenschaften, die spezifisch für das Notizenelement sind.
Beispiel: Betrachten Sie die folgende PresentationML-Notizenfolie:
<p:notes>
<p:cSld>
…
</p:cSld>
…
</p:notes>
Im obigen Beispiel gibt ein Notes-Element an, dass eine Notizenfolie mit allen teilen vorhanden ist. Beachten Sie das cSld-Element, das die allgemeinen Elemente angibt, die auf jedem Folientyp angezeigt werden können, und dann geben alle Elemente zusätzliche nicht allgemeine Eigenschaften für diese Notizenfolie an.
© ISO/IEC29500: 2008.
Das <Notes-Element> ist das Stammelement des PresentationML-Notizenfolienteils. Weitere Informationen zur Gesamtstruktur der Teile und Elemente eines PresentationML-Dokuments finden Sie unter Struktur eines PresentationML-Dokuments.
In der folgenden Tabelle sind die untergeordneten Elemente des notes-Elements> aufgeführt, die <beim Arbeiten mit Notizenfolien verwendet werden, und die Open XML SDK-Klassen, die ihnen entsprechen.
PresentationML-Element | Open XML SDK-Klasse |
---|---|
<clrMapOvr> | ColorMapOverride |
<cSld> | CommonSlideData |
<extLst> | ExtensionListWithModification |
In der folgenden Tabelle aus der SPEZIFIKATION ISO/IEC 29500 werden die Attribute des <Notes-Elements> beschrieben.
Attribute | Beschreibung |
---|---|
showMasterPhAnim (Show Master Placeholder Animations) | Gibt an, ob Animationen für Platzhalter aus der Masterfolie angezeigt werden sollen. Die möglichen Werte für dieses Attribut sind durch den boolean-Datentyp des W3C XML-Schemas definiert. |
showMasterSp (Show Master Shapes) | Gibt an, ob Formen von der Masterfolie auf Folien angezeigt werden sollen. Die möglichen Werte für dieses Attribut sind durch den boolean-Datentyp des W3C XML-Schemas definiert. |
© ISO/IEC29500: 2008.
Open XML SDK NotesSlide-Klasse
Die NotesSlide-Klasse des OXML SDK stellt das notes-Element> dar, das <im Open XML-Dateiformatschema für PresentationML-Dokumente definiert ist. Verwenden Sie die NotesSlide-Klasse , um einzelne <Notizenelemente> in einem PresentationML-Dokument zu bearbeiten.
Klassen, die untergeordnete Elemente des <Notes-Elements> darstellen und daher häufig der NotesSlide-Klasse zugeordnet sind, werden in der folgenden Liste angezeigt.
ColorMapOverride-Klasse
Die ColorMapOverride-Klasse entspricht dem <clrMapOvr-Element> . Die folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 stellen das <clrMapOvr-Element> vor:
Dieses Element stellt einen Mechanismus bereit, mit dem die im <ClrMap-Element> aufgeführten Farbschemas überschrieben werden. Wenn das <untergeordnete masterClrMapping-Element> vorhanden ist, wird das durch die master definierte Farbschema verwendet. Wenn das <untergeordnete overrideClrMapping-Element> vorhanden ist, definiert es ein neues Farbschema, das für die übergeordnete Notizenfolie, die Präsentationsfolie oder das Folienlayout spezifisch ist.
© ISO/IEC29500: 2008.
CommonSlideData-Klasse
Die CommonSlideData-Klasse entspricht dem <cSld-Element> . Die folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 stellen das <cSld-Element> vor:
Dieses Element gibt einen Container für den Folieninformationstyp an, der für alle Folientypen relevant ist. Alle Folien verwenden einen gemeinsamen Satz von Eigenschaften, die unabhängig vom Folientyp sind. Die Beschreibung dieser Eigenschaften für eine bestimmte Folie wird im cSld-Container> der Folie <gespeichert. Foliendaten, die für den vom übergeordneten Element angegebenen Folientyp spezifisch sind, werden an anderer Stelle gespeichert.
Die tatsächlichen Daten in <cSld> beschreiben nur die jeweilige übergeordnete Folie. Es ist nur der Typ der gespeicherten Informationen, der für alle Folien gilt.
© ISO/IEC29500: 2008.
ExtensionListWithModification-Klasse
Die ExtensionListWithModification-Klasse entspricht dem <extLst-Element>. Die folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 stellen das <extLst-Element> vor:
Dieses Element gibt die Erweiterungsliste mit Änderungsmöglichkeit an, in der alle zukünftigen Erweiterungen des Elementtyps <ext> definiert sind. Die Erweiterung wird gemeinsam mit den entsprechenden künftigen Erweiterungen genutzt, um die Speicherfähigkeit des PresentationML-Frameworks zu vergrößern. Dadurch können verschiedene neue Arten von Daten systeminhärent im Framework gespeichert werden.
[Hinweis: Die Verwendung dieses Elements extLst ermöglicht es der generierenden Anwendung, zu speichern, ob diese Erweiterungseigenschaft geändert wurde. Ende des Hinweises]
© ISO/IEC29500: 2008.
Arbeiten mit der NotesSlide-Klasse
Wie im folgenden Open XML SDK-Codebeispiel gezeigt, ist jede instance der NotesSlide-Klasse einem instance der NotesSlidePart-Klasse zugeordnet, die einen Notizenfolienteil, einen der Teile eines PresentationML-Präsentationsdateipakets und einen Teil darstellt, der für jede Notizenfolie in einer Präsentationsdatei erforderlich ist. Jede NotesSlide-Klasse instance kann auch einem instance der NotesMaster-Klasse zugeordnet sein, die wiederum einem ähnlich benannten Präsentationsteil zugeordnet ist, der von der NotesMasterPart-Klasse dargestellt wird.
Die NotesSlide-Klasse , die das <Notes-Element> darstellt, ist daher auch einer Reihe anderer Klassen zugeordnet, die die untergeordneten Elemente des <Notes-Elements> darstellen. Zu diesen Klassen gehören, wie im folgenden Codebeispiel gezeigt wird, die Klassen CommonSlideData und ColorMapOverride. Die ShapeTree-Klasse und die Shape-Klassen sind wiederum der CommonSlideData-Klasse zugeordnet.
Open XML SDK-Codebeispiel
Die folgende Methode fügt einer vorhandenen Präsentation einen neuen Notizenfolienteil hinzu und erstellt eine instance einerNotesSlide-Klasse des Open XML SDK im neuen Notizenfolienteil. Der Konstruktor der NotesSlide-Klasse erstellt Instanzen der Klassen CommonSlideData und ColorMap. Der CommonSlideData-Klassenkonstruktor erstellt eine instance der ShapeTree-Klasse, deren Konstruktor wiederum zusätzliche Klasseninstanzen erstellt: eine instance der NonVisualGroupShapeProperties-Klasse, eine instance der GroupShapeProperties-Klasse und eine instance der Shape-Klasse.
Der Namespace, der durch den Buchstaben P im Code dargestellt wird, ist der DocumentFormat.OpenXml.Presentation-Namespace .
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;
}
Generiertes PresentationML-Dokument
Wenn der Open XML SDK-Code ausgeführt wird, wird der folgende XML-Code in das PresentationML-Dokument geschrieben, auf das im Code verwiesen wird.
<?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>
Siehe auch
Informationen zum Open XML SDK für Office
Gewusst wie: Erstellen einer Präsentation durch Bereitstellen eines Dateinamens
Vorgehensweise: Einfügen einer neuen Folie in eine Präsentation
Vorgehensweise: Löschen einer Folie aus einer Präsentation
Vorgehensweise: Anwenden eines Designs auf eine Präsentation