Freigeben über


Arbeiten mit Folienmastern

Letzte Änderung: Freitag, 8. Oktober 2010

Gilt für: Excel 2010 | Office 2010 | PowerPoint 2010 | Word 2010

Inhalt dieses Artikels
Folienmaster in PresentationML
Open XML SDK 2.0-Klasse "SlideMaster"
Arbeiten mit der SlideMaster-Klasse
Open XML SDK-Codebeispiel
Generierter PresentationML-Code

In diesem Thema wird die Open XML SDK 2.0-Klasse SlideMaster und ihre Beziehung zum Open XML-Dateiformatschema für PresentationML erläutert.

Folienmaster in PresentationML

In der Spezifikation ISO/IEC 29500 wird das Open XML PresentationML-Element <sldMaster>, mit dem Folienlayouts in einem PresentationML-Dokument dargestellt werden, wie folgt beschrieben.

Dieses Element gibt eine Instanz einer Folienmasterfolie an. Eine Folienmasterfolie enthält alle Elemente, welche die Objekte und ihre Formatierung auf einer Präsentationsfolie beschreiben. Eine Folienmasterfolie enthält zwei Hauptelemente. Das cSld-Element gibt die allgemeinen Folienelemente, z. B. Formen und die angefügten Textkörper, an. Das txStyles-Element gibt dann die Formatierung des Texts in jeder dieser Formen an. Die anderen Eigenschaften auf einer Folienmasterfolie geben andere Eigenschaften auf einer Präsentationsfolie an, wie Farbinformationen, Kopf- und Fußzeilen sowie Anzeigedauer- und Übergangsinformationen für alle entsprechenden Präsentationsfolien.

© ISO/IEC29500: 2008.

Das <sldMaster>-Element ist das Stammelement des PresentationML-Folienmasterteils. 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 <sldMaster>-Elements, die bei der Arbeit mit Folienmastern verwendet werden, und die ihnen entsprechenden Open XML SDK 2.0-Klassen aufgeführt.

PresentationML-Element

Open XML SDK 2.0-Klasse

<clrMap>

ColorMap

<cSld>

CommonSlideData

<extLst>

ExtensionListWithModification

<hf>

HeaderFooter

<sldLayoutIdLst>

SlideLayoutIdList

<timing>

Timing

<transition>

Transition

<txStyles>

TextStyles

In der folgenden Tabelle aus der Spezifikation ISO/IEC 29500 werden die Attribute des <sldMaster>-Elements beschrieben.

Attribut

Beschreibung

preserve (Preserve Slide Master)

Gibt an, ob das entsprechende Folienlayout gelöscht werden soll, wenn alle dem Layout entsprechenden Folien gelöscht werden. Ist das Attribut nicht angegeben, sollte von der generierenden Anwendung der Wert false angenommen werden. Dies würde bedeuten, dass die Folie gelöscht wird, wenn keine Folien in der Präsentation damit verbunden sind.

Die möglichen Werte für dieses Attribut sind durch den Boolean-Datentyp des W3C XML-Schemas definiert.

© ISO/IEC29500: 2008.

Open XML SDK 2.0-Klasse "SlideMaster"

Die OXML SDK-Klasse SlideMaster stellt das <sldMaster>-Element dar, das im Open XML-Dateiformatschema für PresentationML-Dokumente definiert ist. Verwenden Sie die SlideMaster-Klasse zum Bearbeiten einzelner <sldMaster>-Elemente in einem PresentationML-Dokument.

Klassen, die untergeordnete Elemente des <sldMaster>-Elements darstellen und daher im Allgemeinen der SlideMaster-Klasse zugeordnet werden, sind in der folgenden Liste aufgeführt.

ColorMapOverride-Klasse

Die ColorMapOverride-Klasse entspricht dem <clrMapOvr>-Element. In den folgenden Informationen aus der Spezifikation ISO/IEC 29500 wird das <clrMapOvr>-Element eingeführt:

Dieses Element bietet einen Mechanismus, um die Farbschemas im <ClrMap>-Element zu überschreiben. Wenn das untergeordnete <masterClrMapping>-Element vorhanden ist, wird das im Master definierte Farbschema verwendet. Wenn das untergeordnete <overrideClrMapping>-Element vorhanden ist, definiert es ein neues, für die übergeordnete Notizenfolie, Präsentationsfolie oder das übergeordnete Folienlayout spezifisches Farbschema.

© ISO/IEC29500: 2008.

CommonSlideData-Klasse

Die CommonSlideData-Klasse entspricht dem <cSld>-Element. In den folgenden Informationen aus der Spezifikation ISO/IEC 29500 wird das <cSld>-Element eingeführt:

Dieses Element gibt einen Container für den Typ von Folieninformationen an, der für alle Folientypen relevant ist. Allen Folien ist ein Satz von Eigenschaften gemeinsam, die unabhängig vom Folientyp sind. Die Beschreibung dieser Eigenschaften für eine bestimmte Folie ist im <cSld>-Container der Folie gespeichert. Spezifische Foliendaten für den vom übergeordneten Element angegebenen Folientyp sind an einer anderen Stelle gespeichert.

Die tatsächlichen Daten in <cSld> beschreiben nur die bestimmte übergeordnete Folie. Nur der Typ der gespeicherten Informationen ist bei allen Folien gleich.

© ISO/IEC29500: 2008.

ExtensionListWithModification-Klasse

Die ExtensionListWithModification-Klasse entspricht dem <extLst>-Element. In den folgenden Informationen aus der Spezifikation ISO/IEC 29500 wird das <extLst>-Element eingeführt:

Dieses Element gibt die Erweiterungsliste mit Modifikationsmöglichkeit an, in der alle künftigen Erweiterungen des Elementtyps <ext> definiert werden. Die Erweiterung wird gemeinsam mit den entsprechenden künftigen Erweiterungen genutzt, um die Speicherfähigkeiten des PresentationML-Frameworks zu vergrößern. Dadurch können verschiedene neue Arten von Daten systeminhärent im Framework gespeichert werden.

[Hinweis: Mithilfe des extLst-Elements kann die generierende Anwendung speichern, ob diese Erweiterungseigenschaft geändert wurde. Ende des Hinweises]

© ISO/IEC29500: 2008.

HeaderFooter-Klasse

Die HeaderFooter-Klasse entspricht dem <hf>-Element. In den folgenden Informationen aus der Spezifikation ISO/IEC 29500 wird das <hf>-Element eingeführt:

Dieses Element gibt die Kopf- und Fußzeileninformationen für eine Folie an. Kopf- und Fußzeilen bestehen aus Platzhaltern für Text, der einheitlich für alle Folien und Folientypen gelten soll, wie beispielsweise Datum und Uhrzeit, Foliennummerierung sowie benutzerdefinierter Kopf- und Fußzeilentext.

© ISO/IEC29500: 2008.

SlideLayoutIdList-Klasse

Die SlideLayoutIdList-Klasse entspricht dem <sldLayoutIdLst>-Element. In den folgenden Informationen aus der Spezifikation ISO/IEC 29500 wird das <sldLayoutIdLst>-Element eingeführt:

Dieses Element gibt das Vorhandensein der Folienlayout-Identifizierungsliste an. Diese Liste ist im Folienmaster enthalten und dient zur Bestimmung der in der Folienmasterdatei verwendeten Layouts. Jedes Layout in der Liste der Folienlayouts weist eine eigene ID und Beziehungs-ID auf, die es eindeutig im Präsentationsdokument und auf der Masterfolie, auf der es verwendet wird, identifiziert.

© ISO/IEC29500: 2008.

Timing-Klasse

Die Timing-Klasse entspricht dem <timing>-Element. In den folgenden Informationen aus der Spezifikation ISO/IEC 29500 wird das <timing>-Element eingeführt:

Dieses Element gibt die Anzeigedauer für alle Animationen und zeitgesteuerten Ereignisse auf der entsprechenden Folie an. Diese Informationen werden über Zeitknoten innerhalb des <timing>-Elements nachverfolgt. Weitere Informationen zu den Besonderheiten dieser Zeitknoten und zu ihrer Definition finden Sie im Animationsabschnitt des PresentationML-Frameworks.

© ISO/IEC29500: 2008.

Transition-Klasse

Die Transition-Klasse entspricht dem <transition>-Element. In den folgenden Informationen aus der Spezifikation ISO/IEC 29500 wird das <transition>-Element eingeführt:

Dieses Element gibt die Art des Folienübergangs an, die für den Wechsel von der vorherigen Folie zur aktuellen Folie verwendet werden soll. Die Übergangsinformationen sind somit auf der Folie gespeichert, die nach dem Übergang angezeigt wird.

© ISO/IEC29500: 2008.

TextStyles-Klasse

Die TextStyles-Klasse entspricht dem <txStyles>-Element. In den folgenden Informationen aus der Spezifikation ISO/IEC 29500 wird das <txStyles>-Element eingeführt:

Dieses Element gibt die Textformatvorlagen in einem Folienmaster an. Das Element enthält die Formatinformationen für den Titeltext, den Textkörper und anderen Folientext. Das Element wird nur innerhalb des Folienmasters verwendet und legt somit die Textformatvorlagen für die entsprechenden Präsentationsfolien fest.

[Beispiel: Betrachten Sie den Fall, dass der Titeltext für eine Masterfolie angegeben werden soll.

<p:txStyles>
    <p:titleStyle>        <a:lvl1pPr algn="ctr" rtl="0" latinLnBrk="0">
            <a:spcBef>
                <a:spcPct val="0"/>
            </a:spcBef>
            <a:buNone/>
            <a:defRPr sz="4400" kern="1200">
                <a:solidFill>vv
                    <a:schemeClr val="tx1"/>
                </a:solidFill>
                <a:latin typeface="+mj-lt"/>
                <a:ea typeface="+mj-ea"/>
                <a:cs typeface="+mj-cs"/>
            </a:defRPr>
        </a:lvl1pPr>
    </p:titleStyle>
</p:txStyles>

Im obigen Beispiel wird der Titeltext entsprechend der obigen Formatierung für alle zugehörigen Folien in der Präsentation festgelegt. Ende des Beispiels]

© ISO/IEC29500: 2008.

Arbeiten mit der SlideMaster-Klasse

Wie das folgende Open XML SDK-Codebeispiel zeigt, wird jeder Instanz der SlideMaster-Klasse eine Instanz der SlideMasterPart-Klasse zugeordnet. Diese stellt einen Folienmasterteil, einen der erforderlichen Teile eines PresentationML-Präsentationsdateipakets, dar. Jeder Instanz der SlideMaster-Klasse müssen zudem Instanzen der Klassen SlideLayout und Slide zugeordnet werden, denen wiederum ähnlich benannte erforderliche Präsentationsteile zugeordnet sind, die durch die Klassen SlideLayoutPart und SlidePart dargestellt werden.

Der SlideMaster-Klasse, die das <sldMaster>-Element darstellt, ist somit ebenfalls eine Folge anderer Klassen zugeordnet, die die untergeordneten Elemente des <sldMaster>-Elements darstellen. Zu diesen Klassen gehören, wie im folgenden Codebeispiel gezeigt wird, die Klassen CommonSlideData, ColorMap, ShapeTree und Shape.

Open XML SDK-Codebeispiel

Durch die folgende Methode aus dem Artikel Anleitung: Erstellen eines Präsentationsdokuments durch Bereitstellen eines Dateinamens wird einer vorhandenen Präsentation ein neuer Folienmasterteil hinzugefügt und eine Instanz einer Open XML SDK 2.0-Klasse SlideMaster im neuen Folienmasterteil erstellt. Der Konstruktor der SlideMaster-Klasse erstellt Instanzen der Klassen CommonSlideData, ColorMap, SlideLayoutIdList und TextStyles. Der Konstruktor der CommonSlideData-Klasse erstellt eine Instanz der ShapeTree-Klasse, deren Konstruktor wiederum weitere Klasseninstanzen erstellt: unter anderem eine Instanz der NonVisualGroupShapeProperties-Klasse, eine Instanz der GroupShapeProperties-Klasse und eine Instanz der Shape-Klasse.

Bei dem im Code durch den Buchstaben P dargestellten Namespace handelt es sich um den DocumentFormat.OpenXml.Presentation-Namespace.

private static SlideMasterPart CreateSlideMasterPart(SlideLayoutPart slideLayoutPart1)
   {
       SlideMasterPart slideMasterPart1 = slideLayoutPart1.AddNewPart<SlideMasterPart>("rId1");
       SlideMaster slideMaster = new SlideMaster(
       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 Placeholder 1" },
           new P.NonVisualShapeDrawingProperties(new ShapeLocks() { NoGrouping = true }),
           new ApplicationNonVisualDrawingProperties(new PlaceholderShape() { Type = PlaceholderValues.Title })),
         new P.ShapeProperties(),
         new P.TextBody(
           new BodyProperties(),
           new ListStyle(),
           new Paragraph())))),
       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 },
       new SlideLayoutIdList(new SlideLayoutId() { Id = (UInt32Value)2147483649U, RelationshipId = "rId1" }),
       new TextStyles(new TitleStyle(), new BodyStyle(), new OtherStyle()));
       slideMasterPart1.SlideMaster = slideMaster;
       return slideMasterPart1;
    }
Private Shared Function CreateSlideMasterPart(ByVal slideLayoutPart1 As SlideLayoutPart) As SlideMasterPart
            Dim slideMasterPart1 As SlideMasterPart = slideLayoutPart1.AddNewPart(Of SlideMasterPart)("rId1")
            Dim slideMaster As New SlideMaster(New CommonSlideData(New ShapeTree(New P.NonVisualGroupShapeProperties(New P.NonVisualDrawingProperties() With { _
              .Id = CType(1UI, UInt32Value), _
              .Name = "" _
            }, New P.NonVisualGroupShapeDrawingProperties(), New ApplicationNonVisualDrawingProperties()), _
                New GroupShapeProperties(New TransformGroup()), New P.Shape(New P.NonVisualShapeProperties(New P.NonVisualDrawingProperties() With { _
              .Id = CType(2UI, UInt32Value), _
              .Name = "Title Placeholder 1" _
            }, New P.NonVisualShapeDrawingProperties(New ShapeLocks() With { _
              .NoGrouping = True _
            }), New ApplicationNonVisualDrawingProperties(New PlaceholderShape() With { _
              .Type = PlaceholderValues.Title _
            })), New P.ShapeProperties(), New P.TextBody(New BodyProperties(), New ListStyle(), New Paragraph())))), New P.ColorMap() With { _
              .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 _
            }, New SlideLayoutIdList(New SlideLayoutId() With { _
              .Id = CType(2147483649UI, UInt32Value), _
              .RelationshipId = "rId1" _
            }), New TextStyles(New TitleStyle(), New BodyStyle(), New OtherStyle()))
            slideMasterPart1.SlideMaster = slideMaster

            Return slideMasterPart1
        End Function

Generierter PresentationML-Code

Bei der Ausführung des Open XML SDK 2.0-Codes wird folgende XML in das im Code referenzierte PresentationML-Dokument geschrieben.

<?xml version="1.0" encoding="utf-8"?>
<p:sldMaster 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="Title Placeholder 1" />
          <p:cNvSpPr>
            <a:spLocks noGrp="1"
                       xmlns:a="https://schemas.openxmlformats.org/drawingml/2006/main" />
          </p:cNvSpPr>
          <p:nvPr>
            <p:ph type="title" />
          </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" />
        </p:txBody>
      </p:sp>
    </p:spTree>
  </p:cSld>
  <p:clrMap bg1="lt1"
            tx1="dk1"
            bg2="lt2"
            tx2="dk2"
            accent1="accent1"
            accent2="accent2"
            accent3="accent3"
            accent4="accent4"
            accent5="accent5"
            accent6="accent6"
            hlink="hlink"
            folHlink="folHlink" />
  <p:sldLayoutIdLst>
    <p:sldLayoutId id="2147483649"
                   r:id="rId1"
                   xmlns:r="https://schemas.openxmlformats.org/officeDocument/2006/relationships" />
  </p:sldLayoutIdLst>
  <p:txStyles>
    <p:titleStyle />
    <p:bodyStyle />
    <p:otherStyle />
  </p:txStyles>
</p:sldMaster>

Siehe auch

Konzepte

Informationen zum Open XML SDK 2.0 für Microsoft Office

Anleitung: Erstellen einer Präsentation durch Bereitstellen eines Dateinamens

Anleitung: Einfügen einer neuen Folie in eine Präsentation

Anleitung: Löschen einer Folie aus einer Präsentation