Freigeben über


Arbeiten mit Präsentationsfolien

In diesem Thema wird die Open XML SDK für Office-Folienklasse 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**.


Präsentationsfolien in PresentationML

Die SPEZIFIKATION ISO/IEC 29500 beschreibt das Open XML PresentationML <sld-Element> , das zur Darstellung einer Präsentationsfolie in einem PresentationML-Dokument verwendet wird:

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

Beispiel: Betrachten Sie die folgende benutzerdefinierte Show mit einer Reihenfolge von Folien.

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

© ISO/IEC29500: 2008.

Das <sld-Element> 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 sld-Elements> aufgeführt, die <beim Arbeiten mit Präsentationsfolien und den entsprechenden Open XML SDK-Klassen verwendet werden.

PresentationML-Element Open XML SDK-Klasse
<clrMapOvr> ColorMapOverride
<cSld> CommonSlideData
<extLst> ExtensionListWithModification
<Timing> Timing
<Übergang> Übergang

Open XML SDK-Folienklasse

Die Open XML SDKSlide-Klasse stellt das sld-Element> dar, das <im Open XML-Dateiformatschema für PresentationML-Dokumente definiert ist. Verwenden Sie das Slide-Objekt , um einzelne <sld-Elemente> in einem PresentationML-Dokument zu bearbeiten.

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

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.

Timing-Klasse

Die Timing-Klasse entspricht dem <Timing-Element> . Die folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 führen das <Zeitsteuerungselement> ein:

Dieses Element gibt die Zeitgeberinformationen zur Behandlung aller Animationen und geplanten Ereignisse innerhalb der entsprechenden Folie an. Diese Informationen werden über Zeitknoten innerhalb des Zeitsteuerungselements <> 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 <Transition-Element> . Die folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 stellen das <Übergangselement> vor:

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 Codebeispiel des Open XML SDK gezeigt, ist jede instance der Slide-Klasse einem instance der SlidePart-Klasse zugeordnet, die einen Folienteil darstellt, einer der erforderlichen Teile eines PresentationML-Präsentationsdateipakets. Jede instance der Slide-Klasse muss auch Instanzen der SlideLayout- und SlideMaster-Klasse zugeordnet sein, die wiederum ähnlich benannten erforderlichen Präsentationsteilen zugeordnet sind, die durch die SlideLayoutPart- und SlideMasterPart-Klassen dargestellt werden.

Die Slide-Klasse , die das <sld-Element> darstellt, ist daher auch einer Reihe anderer Klassen zugeordnet, die die untergeordneten Elemente des <sld-Elements> darstellen. Zu diesen Klassen gehören, wie im folgenden Codebeispiel gezeigt, die CommonSlideData-Klasse , die ColorMapOverride-Klasse , die ShapeTree-Klasse und die Shape-Klasse .


Open XML SDK-Codebeispiel

Die folgende Methode aus dem Artikel How to: Create a presentation document by providing a file name** fügt einer vorhandenen Präsentation ein neues Folienteil hinzu und erstellt eine instance der Open XML SDK-Folienklasse im neuen Folienteil. Der Konstruktor der Slide-Klasse erstellt Instanzen der Klassen CommonSlideData und ColorMapOverride. Der CommonSlideData-Klassenkonstruktor erstellt eine instance der ShapeTree-Klasse, deren Konstruktor wiederum zusätzliche Klasseninstanzen erstellt: eine instance der NonVisualGroupShapeProperties-Klasse, die GroupShapeProperties-Klasse und die Shape-Klasse.

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

Der Namespace, der durch den Buchstaben P im Code dargestellt wird, ist der 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;
             }

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" })))

Generiertes PresentationML-Dokument

Wenn der Open XML SDK-Code in der -Methode ausgeführt wird, 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

Informationen zum Open XML SDK für Office

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

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

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

Vorgehensweise: Anwenden eines Designs auf eine Präsentation

Vorgehensweise: Erstellen eines Präsentationsdokuments durch Angeben eines Dateinamens