Arbeiten mit Handzettelmasterfolien
In diesem Thema wird die HandoutMaster-Klasse des Open XML SDK für Office und ihre Beziehung zum PresentationML-Schema des Open XML-Dateiformats erläutert. Weitere Informationen zur Gesamtstruktur der Teile und Elemente, aus denen ein PresentationML-Dokument besteht, finden Sie unter Struktur eines PresentationML-Dokuments.
Handzettelmasterfolien in PresentationML
Die SPEZIFIKATION ISO/IEC 29500 beschreibt das Open XML PresentationML <handoutMaster-Element>, das zur Darstellung eines Handzettels master Folie in einem PresentationML-Dokument verwendet wird:
Dieses Element gibt eine Instanz einer Handzettelmasterfolie an. Innerhalb einer Handzettelmasterfolie sind alle Elemente enthalten, die die Objekte und die entsprechende Formatierung für eine Handzettelfolie beschreiben. Innerhalb einer Handzettelmasterfolie gibt das Element cSld die gemeinsamen Folienelemente wie Formen und ihre angefügten Textkörper an. Es sind auch andere Eigenschaften innerhalb einer Handzettelmasterfolie vorhanden, aber cSld enthält einen Großteil des Zwecks einer Folie vom Typ handoutMaster
© ISO/IEC29500: 2008.
In der folgenden Tabelle sind die untergeordneten Elemente des handoutMaster-Elements> aufgeführt, die <beim Arbeiten mit Handzetteln master Folien und den entsprechenden Open XML SDK-Klassen verwendet werden.
PresentationML-Element | Open XML SDK-Klasse |
---|---|
<clrMap> | Colormap |
<cSld> | CommonSlideData |
<extLst> | ExtensionListWithModification |
<Hf> | HeaderFooter |
Open XML SDK HandoutMaster-Klasse
Die HandoutMaster-Klasse des Open XML SDK stellt das <handoutMaster-Element> dar, das im Open XML-Dateiformatschema für PresentationML-Dokumente definiert ist. Verwenden Sie die HandoutMaster-Klasse , um einzelne <handoutMaster-Elemente> in einem PresentationML-Dokument zu bearbeiten.
In den folgenden Abschnitten sind Klassen aufgeführt, die der HandoutMaster-Klasse häufig zugeordnet werden.
ColorMap-Klasse
Die ColorMap-Klasse entspricht dem <clrMap-Element> . Die folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 führen das <clrMap-Element> ein:
Mit diesem Element wird die Zuordnungsebene angegeben, mit der eine Farbschemadefinition in eine andere umgewandelt wird. Jedes Attribut stellt einen Farbnamen dar, auf den in diesem Master verwiesen werden kann, und als Wert wird die entsprechende Farbe im Design verwendet.
Beispiel: Betrachten Sie die folgende Zuordnung von Farben, die für eine Folie master gilt:
<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"/>
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.
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
Mithilfe dieses extLst-Elements kann die generierende Anwendung speichern, ob diese Erweiterungseigenschaft geändert wurde.
HeaderFooter-Klasse
Die HeaderFooter-Klasse entspricht dem <hf-Element> . Die folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 stellen das <hf-Element> vor:
Mit diesem Element werden die Kopf- und Fußzeileninformationen für eine Folie angegeben. Kopf- und Fußzeilen bestehen aus Platzhaltern für Text, der für alle Folien und Folientypen konsistent sein soll, z. B. Datum und Uhrzeit, Foliennummerierung und benutzerdefinierter Kopf- und Fußzeilentext.
Arbeiten mit der HandoutMaster-Klasse
Wie im folgenden Open XML SDK-Codebeispiel gezeigt, ist jede instance der HandoutMaster-Klasse einer instance der HandoutMasterPart-Klasse zugeordnet, die ein HandoutMasterPart-Element master Teil, einen der Teile eines PresentationML-Präsentationsdateipakets und einen Teil darstellt, der für eine Präsentationsdatei erforderlich ist, die Handzettel enthält.
Die HandoutMaster-Klasse , die das <handoutMaster-Element> darstellt, ist daher auch einer Reihe anderer Klassen zugeordnet, die die untergeordneten Elemente des <handoutMaster-Elements> darstellen. Zu diesen Klassen gehören, wie im folgenden Codebeispiel gezeigt, die CommonSlideData-Klasse , die ColorMap-Klasse , die ShapeTree-Klasse und die Shape-Klasse .
Open XML SDK-Codebeispiel
Die folgende Methode fügt einer vorhandenen Präsentation ein neues Handzettel master Teil hinzu und erstellt eine instance einer Open XML SDKHandoutMaster-Klasse im neuen Handzettel master Part. Der Konstruktor der HandoutMaster-Klasse erstellt Instanzen der CommonSlideData-Klasse und der ColorMap-Klasse. 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 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;
}