Freigeben über


Arbeiten mit Präsentationsfolien

Letzte Änderung: Freitag, 8. Oktober 2010

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

Inhalt dieses Artikels
Präsentationsfolien in PresentationML
Open XML SDK 2.0-Folienklasse
Arbeiten mit der Slide-Klasse
Codebeispiel für das Open XML SDK
Generiertes PresentationML-Dokument

In diesem Thema wird die Slide-Klasse vom Open XML SDK 2.0 und ihre Verbindung zum PresentationML-Schema im Open XML-Dateiformat erläutert. Weitere Informationen zur Gesamtstruktur der Teile und Elemente eines PresentationML-Dokuments finden Sie unter Struktur eines PresentationML-Dokuments.

Präsentationsfolien in PresentationML

In der ISO/IEC 29500-Spezifikation wird das Element <sld> des PresentationML-Dokuments in Open XML erläutert, das zur Darstellung einer Präsentationsfolie in einem PresentationML-Dokument wie folgt verwendet wird:

Mit diesem Element wird eine Folie innerhalb einer Folienliste angegeben. Die Folienliste wird zum Angeben einer Reihenfolge von Folien verwendet.

[Ein Beispiel: Stellen Sie sich die folgende zielgruppenorientierte Präsentation mit einer Abfolge von Folien vor.

<p:custShowLst>
    <p:custShow name="Custom Show 1" id="0">
        <p:sldLst>
            <p:sld r:id="rId4"/>
            <p:sld r:id="rId3"/>
            <p:sld r:id="rId2"/>
            <p:sld r:id="rId5"/>
        </p:sldLst>
    </p:custShow>
</p:custShowLst>

Im Beispiel oben wird angegeben, dass die Folien in der folgenden Reihenfolge angezeigt werden sollen: Folie 4, dann 3, 2 und schließlich 5.

Ende des Beispiels]

© ISO/IEC29500: 2008.

Das Element <sld> ist das Stammelement des PresentationML-Folienteils. 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 Elements <sld> aufgeführt, die verwendet werden, wenn mit Präsentationsfolien und den entsprechenden Open XML SDK 2.0-Klassen gearbeitet wird.

PresentationML-Element

Open XML SDK 2.0-Klasse

<clrMapOvr>

ColorMapOverride

<cSld>

CommonSlideData

<extLst>

ExtensionListWithModification

<timing>

Timing

<transition>

Transition

Open XML SDK 2.0-Folienklasse

Die Slide-Klasse im Open XML SDK 2.0 stellt das Element <sld> dar, das im Open XML-Dateiformatschema für PresentationML-Dokumente definiert ist. Mit der Slide-Klasse können Sie einzelne Elemente vom Typ <sld> in einem PresentationML-Dokument ändern.

In den folgenden Abschnitten sind Klassen aufgeführt, die der Slide-Klasse häufig zugeordnet werden.

ColorMapOverride-Klasse

Die ColorMapOverride-Klasse entspricht dem Element <clrMapOvr>. In den folgenden Informationen aus der http://www.iso.org/iso/iso\_catalogue/catalogue\_tc/catalogue\_detail.htm?csnumber=51463-Spezifikation wird das <clrMapOvr>-Element erläutert.

Mit diesem Element wird ein Mechanismus zum Außerkraftsetzen der Farbschemata bereitgestellt, die im Element <ClrMap> aufgeführt sind. Falls das untergeordnete Element <masterClrMapping> vorhanden ist, wird das vom Master definierte Farbschema verwendet. Falls das untergeordnete Element <overrideClrMapping> vorhanden ist, definiert es ein neues Farbschema, das für die übergeordnete Notizenfolie, Präsentationsfolie oder das Folienlayout spezifisch ist.

© ISO/IEC29500: 2008.

CommonSlideData-Klasse

Die CommonSlideData-Klasse entspricht dem Element <cSld>. In den folgenden Informationen aus der http://www.iso.org/iso/iso\_catalogue/catalogue\_tc/catalogue\_detail.htm?csnumber=51463\<cSld><cSld> erläutert:

Mit diesem Element wird ein Container für den Typ von Folieninformationen angegeben, der für alle Folientypen relevant ist. Alle Folien verwenden eine gemeinsame Gruppe von Eigenschaften, die vom Folientyp unabhängig ist. Die Beschreibung dieser Eigenschaften wird für jede Folie im Container <cSld> der Folie gespeichert. Foliendaten, die für den durch das übergeordnete Element angegebenen Folientyp spezifisch sind, werden an anderer Stelle gespeichert.

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

© ISO/IEC29500: 2008.

ExtensionListWithModification-Klasse

Die ExtensionListWithModification-Klasse entspricht dem Element <extLst>. In den folgenden Informationen aus der http://www.iso.org/iso/iso\_catalogue/catalogue\_tc/catalogue\_detail.htm?csnumber=51463\<extLst><extLst> erläutert:

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ä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.

Timing-Klasse

Die Timing-Klasse entspricht dem Element <timing>. In den folgenden Informationen aus der http://www.iso.org/iso/iso\_catalogue/catalogue\_tc/catalogue\_detail.htm?csnumber=51463\<timing><timing> erläutert:

Dieses Element gibt die Zeitgeberinformationen zur Behandlung aller Animationen und geplanten Ereignisse innerhalb der entsprechenden Folie an. Diese Informationen werden mithilfe von Zeitknoten innerhalb des Elements <timing> nachverfolgt. Weitere Informationen zu den Besonderheiten dieser Zeitknoten und zu ihrer Definition finden Sie innerhalb des Animationsabschnitts des PresentationML-Frameworks.

© ISO/IEC29500: 2008.

Transition-Klasse

Die Transition-Klasse entspricht dem Element <transition>. In den folgenden Informationen aus der http://www.iso.org/iso/iso\_catalogue/catalogue\_tc/catalogue\_detail.htm?csnumber=51463\<transition><transition> erläutert:

Dieses Element gibt die Art des Folienübergangs an, der beim Übergang zur aktuellen Folie von der vorherigen Folie verwendet werden soll. Dies bedeutet, dass die Übergangsinformationen in der Folie gespeichert sind, die nach Abschluss des Übergangs angezeigt wird.

© ISO/IEC29500: 2008.

Arbeiten mit der Slide-Klasse

Wie im folgenden Open XML SDK-Codebeispiel gezeigt ist jede Instanz der Slide-Klasse einer Instanz der SlidePart-Klasse zugeordnet, die einen Folienteil darstellt, einem der erforderlichen Teile eines PresentationML-Präsentationsdateipakets. Jede Instanz der Slide-Klasse muss auch Instanzen der Klassen SlideLayout und SlideMaster zugeordnet sein, die wiederum ähnlich benannten, erforderlichen Präsentationsteilen zugeordnet sind, die durch die Klassen SlideLayoutPart und SlideMasterPart dargestellt sind.

Die Slide-Klasse, die das <sld>-Element darstellt, ist daher ebenfalls einer Gruppe anderer Klassen zugeordnet, die die untergeordneten Elemente des <sld>-Elements darstellen. Zu diesen Klassen zählen wie im folgenden Codebeispiel gezeigt die Klassen CommonSlideData, ColorMapOverride, ShapeTree und Shape.

Codebeispiel für das Open XML SDK

Mit der folgenden Methode aus dem Artikel Anleitung: Erstellen eines Präsentationsdokuments durch Bereitstellen eines Dateinamens wird einer vorhandenen Präsentation ein neuer Folienteil hinzugefügt, und es wird eine Instanz der Slide-Klasse im Open XML SDK 2.0 im neuen Folienteil erstellt. Der Konstruktor der Slide-Klasse erstellt Instanzen der Klassen CommonSlideData und ColorMapOverride. Der Konstruktor der CommonSlideData-Klasse erstellt eine Instanz der ShapeTree-Klasse, deren Konstruktor wiederum weitere Klasseninstanzen erstellt: eine Instanz der NonVisualGroupShapeProperties-Klasse, der GroupShapeProperties-Klasse und der Shape-Klasse.

Alle diese Klasseninstanzen und die Instanzen der Klassen, die die untergeordneten Elemente des <sld>-Elements darstellen, sind zum Erstellen der minimalen Anzahl von XML-Elementen erforderlich, die zum Darstellen einer neuen Folie erforderlich sind.

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

private static SlidePart CreateSlidePart(PresentationPart presentationPart)        
        {
            SlidePart slidePart1 = presentationPart.AddNewPart<SlidePart>("rId2");
                slidePart1.Slide = new Slide(
                        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 ColorMapOverride(new MasterColorMapping()));
                return slidePart1;
         }
Private Shared Function CreateSlidePart(ByVal presentationPart As PresentationPart) As SlidePart
            Dim slidePart1 As SlidePart = presentationPart.AddNewPart(Of SlidePart)("rId2")
            slidePart1.Slide = New Slide(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 1" _
            }, New P.NonVisualShapeDrawingProperties(New ShapeLocks() With { _
              .NoGrouping = True _
            }), New ApplicationNonVisualDrawingProperties(New PlaceholderShape())), New P.ShapeProperties(), New P.TextBody(New BodyProperties(), _
               New ListStyle(), New Paragraph(New EndParagraphRunProperties() With { _
              .Language = "en-US" _
            }))))), New ColorMapOverride(New MasterColorMapping()))
            Return slidePart1
        End Function

Wenn Sie der Formstruktur und damit der Folie eine weitere Form hinzufügen möchten, instanziieren Sie ein zweites Shape-Objekt, indem Sie einen weiteren Parameter mit dem folgenden Code an den ShapeTree-Konstruktor übergeben.

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.Shape(New P.NonVisualShapeProperties(New P.NonVisualDrawingProperties() With { _
              .Id = CType(2UI, UInt32Value), _
              .Name = "Title 1" _
            }, New P.NonVisualShapeDrawingProperties(New ShapeLocks() With { _
              .NoGrouping = True _
            }), New ApplicationNonVisualDrawingProperties(New PlaceholderShape())), New P.ShapeProperties(), New P.TextBody(New BodyProperties(), _
               New ListStyle(), New Paragraph(New EndParagraphRunProperties() With { _
              .Language = "en-US" })))

Generiertes PresentationML-Dokument

Bei Ausführung des Open XML SDK 2.0-Codes in der Methode wird der folgende XML-Code in die PresentationML-Dokumentdatei geschrieben, auf die im Code verwiesen wird.

<?xml version="1.0" encoding="utf-8" ?> 
<p:sld 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 1" /> 
          <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 lang="en-US" /> 
      </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:sld>

Siehe auch

Konzepte

Informationen zum Open XML SDK 2.0 für Microsoft Office

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

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

Vorgehensweise: Abrufen der Anzahl der Folien in einem Präsentationsdokument

Anleitung: Anwenden eines Desigs auf eine Präsentation

Anleitung: Erstellen eines Präsentationsdokuments durch Bereitstellen eines Dateinamens