Freigeben über


Arbeiten mit Präsentationen

In diesem Thema wird die Open XML SDK für Office-Klasse Presentation 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äsentationen in PresentationML

Die ISO/IEC 29500-Spezifikation beschreibt das Open XML PresentationML-Element <presentation/> , das zur Darstellung einer Präsentation in einem PresentationML-Dokument verwendet wird, wie folgt:

Dieses Element gibt grundlegende für die gesamte Präsentation geltende Eigenschaften an.

Beispiel: Betrachten Sie die folgende Präsentation mit einer einzelnen Folie master und zwei Folien. Zusätzlich zu diesen gängigen Elementen kann auch die Angabe anderer Eigenschaften vorhanden sein, z. B. Foliengröße, Notizengröße und Standardtextformate.

<p:presentation xmlns:a="" xmlns:r="" xmlns:p="">  
    <p:sldMasterIdLst>  
        <p:sldMasterId id="2147483648" r:id="rId1">  
    </p:sldMasterIdLst>  
    <p:sldIdLst>  
        <p:sldId id="256" r:id="rId3"/>  
        <p:sldId id="257" r:id="rId4"/>  
    </p:sldIdLst>  
    <p:sldSz cx="9144000" cy="6858000" type="screen4x3"/>  
    <p:notesSz cx="6858000" cy="9144000"/>  
    <p:defaultTextStyle>  
        …  
    </p:defaultTextStyle>  
</p:presentation>

© ISO/IEC 29500: 2016

Das <presentation/> -Element enthält in der Regel untergeordnete Elemente, die Folienmaster, Folien und benutzerdefinierte Bildschirmpräsentationen in der Präsentation auflisten. Zusätzlich zu diesen gängigen Elementen kann auch die Angabe anderer Eigenschaften vorhanden sein, z. B. Foliengröße, Notizengröße und Standardtextformate.

Das <presentation/> -Element ist das Stammelement des PresentationML-Präsentationsteils. Weitere Informationen zur Gesamtstruktur der Teile und Elemente eines PresentationML-Dokuments finden Sie unter Struktur eines PresentationML-Dokuments.

In der folgenden Tabelle sind einige der gängigsten untergeordneten Elemente des Elements aufgeführt, die <presentation/> beim Arbeiten mit Präsentationen und den Open XML SDK-Klassen verwendet werden, die ihnen entsprechen.

PresentationML-Element Open XML SDK-Klasse
<sldMasterIdLst/> SlideMasterIdList
<sldMasterId/> SlideMasterId
<sldIdLst/> SlideIdList
<sldId/> SlideId
<notesMasterIdLst/> NotesMasterIdList
<handoutMasterIdLst/> SlideMasterIdList
<custShowLst/> CustomShowList
<sldSz/> SlideSize
<notesSz/> <xrefDocumentFormat.OpenXml.Presentation.NotesSize>
<defaultTextStyle/> DefaultTextStyle

Open XML SDK Presentation Class

Die Open XML SDK-Klasse Presentation stellt das element dar, das <presentation/> im Open XML-Dateiformatschema für PresentationML-Dokumente definiert ist. Verwenden Sie die Presentation -Klasse, um ein einzelnes <presentation/> Element in einem PresentationML-Dokument zu bearbeiten.

Klassen, die Presentation der Klasse häufig zugeordnet sind, werden in den folgenden Abschnitten gezeigt.

SlideMasterIdList-Klasse

Alle Folien, die denselben Master gemeinsam haben, übernehmen das Layout dieses Masters. Die SlideMasterIdList -Klasse entspricht dem <sldMasterIdList/> -Element. Die ISO/IEC 29500-Spezifikation beschreibt das Open XML PresentationML-Element<sldMasterIdList/>, das verwendet wird, um eine Folie master ID-Liste in einem PresentationML-Dokument darzustellen, wie folgt:

Dieses Element gibt eine Liste mit ID-Informationen für die Folienmasterfolien an, die in der entsprechenden Präsentation vorhanden sind. Ein Folienmaster ist eine Folie, die als Vorlage aller dazugehörigen untergeordneten Layoutfolien dient.

© ISO/IEC 29500: 2016

SlideMasterId-Klasse

Die SlideMasterId -Klasse entspricht dem <sldMasterId/> -Element. Die ISO/IEC 29500-Spezifikation beschreibt das Open XML PresentationML-Element<sldMasterId/>, das zur Darstellung einer Folie master ID in einem PresentationML-Dokument verwendet wird:

Dieses Element gibt einen Folienmaster an, der in der entsprechenden Präsentation vorhanden ist. Ein Folienmaster ist eine Folie, die als Vorlage aller dazugehörigen untergeordneten Layoutfolien dient.

Beispiel: Betrachten Sie die folgende Spezifikation einer Folie master innerhalb einer Präsentation

<p:presentation xmlns:a="" xmlns:r="" xmlns:p=""
embedTrueTypeFonts="1">  
    …  
    <p:sldMasterIdLst>  
        <p:sldMasterId id="2147483648" r:id="rId1"/>  
    </p:sldMasterIdLst>  
    …  
</p:presentation>

© ISO/IEC 29500: 2016

SlideIdList-Klasse

Die SlideIdList -Klasse entspricht dem <sldIdLst/> -Element. Die ISO/IEC 29500-Spezifikation beschreibt das Open XML PresentationML-Element <sldIdLst/> , das zur Darstellung einer Folien-ID-Liste in einem PresentationML-Dokument verwendet wird, wie folgt:

Dieses Element gibt eine Liste mit ID-Informationen für die Folien an, die in der entsprechenden Präsentation vorhanden sind. Eine Folie enthält die für eine einzelne Folie spezifischen Informationen, z. B. eine folienspezifische Form und Textinformationen.

© ISO/IEC 29500: 2016

SlideId-Klasse

Die SlideId -Klasse entspricht dem <sldId/> -Element. Die SPEZIFIKATION ISO/IEC 29500 beschreibt das Open XML PresentationML-Element <sldId/> , das zur Darstellung einer Folien-ID in einem PresentationML-Dokument verwendet wird, wie folgt:

Dieses Element gibt eine Präsentationsfolie an, die in der entsprechenden Präsentation vorhanden ist. Eine Folie enthält die für eine einzelne Folie spezifischen Informationen, z. B. eine folienspezifische Form und Textinformationen.

Beispiel: Betrachten Sie die folgende Spezifikation einer Folie master innerhalb einer Präsentation

<p:presentation xmlns:a="" xmlns:r="" xmlns:p="" embedTrueTypeFonts="1">  
    …  
    <p:sldIdLst>  
        <p:sldId id="256" r:id="rId3"/>  
        <p:sldId id="257" r:id="rId4"/>  
        <p:sldId id="258" r:id="rId5"/>  
        <p:sldId id="259" r:id="rId6"/>  
        <p:sldId id="260" r:id="rId7"/>  
    </p:sldIdLst>  
    ...  
</p:presentation>

© ISO/IEC 29500: 2016

NotesMasterIdList-Klasse

Die NotesMasterIdList -Klasse entspricht dem <notesMasterIdLst/> -Element. Die ISO/IEC 29500-Spezifikation beschreibt das Open XML PresentationML-Element<notesMasterIdLst/>, das verwendet wird, um eine Notizen master ID-Liste in einem PresentationML-Dokument darzustellen, wie folgt:

Dieses Element gibt eine Liste mit ID-Informationen für die Notizenmasterfolien an, die in der entsprechenden Präsentation vorhanden sind. Ein Notizenmaster ist eine Folie, die zum Drucken der Folie zusammen mit hinzugefügten Notizen dient.

© ISO/IEC 29500: 2016

HandoutMasterIdList-Klasse

Die HandoutMasterIdList -Klasse entspricht dem <handoutMasterIdLst/> -Element. Die SPEZIFIKATION ISO/IEC 29500 beschreibt das Open XML PresentationML-Element<handoutMasterIdLst/>, das zur Darstellung eines Handzettels master ID-Liste in einem PresentationML-Dokument verwendet wird:

Dieses Element gibt eine Liste mit ID-Informationen für die Handzettelmasterfolien an, die in der entsprechenden Präsentation vorhanden sind. Ein Handzettelmaster ist eine Folie, die zum Drucken als Handzettel dient.

© ISO/IEC 29500: 2016

CustomShowList-Klasse

Die CustomShowList -Klasse entspricht dem <custShowLst/> -Element. Die ISO/IEC 29500-Spezifikation beschreibt das Open XML PresentationML-Element <custShowLst/> , das zur Darstellung einer benutzerdefinierten Showliste in einem PresentationML-Dokument verwendet wird, wie folgt:

Dieses Element gibt eine Liste aller zielgruppenorientierten Präsentationen an, die in der entsprechenden Präsentation vorhanden sind. Eine zielgruppenorientierte Präsentation ist eine festgelegte Folienabfolge, die das Anzeigen der Folien in der Präsentation in einer beliebigen Reihenfolge ermöglicht.

© ISO/IEC 29500: 2016

SlideSize-Klasse

Die SlideSize -Klasse entspricht dem <sldSz/> -Element. Die SPEZIFIKATION ISO/IEC 29500 beschreibt das Open XML PresentationML-Element <sldSz/> , das zur Darstellung der Präsentationsfoliengröße in einem PresentationML-Dokument verwendet wird, wie folgt:

Dieses Element gibt die Größe der Präsentationsfolienoberfläche an. Objekte innerhalb einer Präsentationsfolie können außerhalb dieser Blöcke angegeben werden, aber dies ist die Größe der Hintergrundoberfläche, die angezeigt wird, wenn die Folie präsentiert oder gedruckt wird.

Beispiel: Betrachten Sie folgendes, um die Größe einer Präsentationsfolie anzugeben.

<p:presentation xmlns:a="" xmlns:r="" xmlns:p=""
embedTrueTypeFonts="1">  
    …  
    <p:sldSz cx="9144000" cy="6858000" type="screen4x3"/>  
    …  
</p:presentation>  

© ISO/IEC 29500: 2016

NotesSize-Klasse

Die NotesSize -Klasse entspricht dem <notesSz/> -Element. Die ISO/IEC 29500-Spezifikation beschreibt das Open XML PresentationML-Element <notesSz/> , das zum Darstellen der Foliengröße von Notizen in einem PresentationML-Dokument verwendet wird, wie folgt:

Dieses Element gibt die Größe der Folienoberfläche an, die für Notizenfolien und Handzettelfolien verwendet wird. Objekte innerhalb einer Notizenfolie können außerhalb dieser Blöcke angegeben werden, aber die Notizenfolie hat eine Hintergrundoberfläche der angegebenen Größe, wenn sie dargestellt oder gedruckt wird. Dieses Element soll den Bereich angeben, an den Inhalte in einem speziellen Ausdrucksformat angepasst werden, das die Anwendung generieren kann, z. B. ein Gliederungshandzettel.

Beispiel: Betrachten Sie folgendes, um die Größe einer Notizenfolie anzugeben.

<p:presentation xmlns:a="" xmlns:r="" xmlns:p=""
embedTrueTypeFonts="1">  
    …  
    <p:notesSz cx="9144000" cy="6858000"/>  
    …  
</p:presentation>

© ISO/IEC 29500: 2016

DefaultTextStyle-Klasse

Die DefaultTextStyle -Klasse entspricht dem <defaultTextStyle/> -Element. Die ISO/IEC 29500-Spezifikation beschreibt das Open XML PresentationML-Element <defaultTextStyle/> , das zur Darstellung des Standardtextstils in einem PresentationML-Dokument verwendet wird, wie folgt:

Dieses Element gibt die Standardtextformate an, die in der Präsentation verwendet werden müssen. Das hier festgelegte Textformat kann übernommen werden, wenn eine neue Folie eingefügt wird, die keiner Masterfolie zugeordnet ist, oder für den Text auf der Präsentationsfolie keine anderen Formatinformationen angegeben wurden.

© ISO/IEC 29500: 2016


Arbeiten mit der Presentation-Klasse

Wie im folgenden Codebeispiel des Open XML SDK gezeigt, ist jede instance der Presentation Klasse einer instance der Klasse zugeordnet, die PresentationPart einen Präsentationsteil darstellt, einen der erforderlichen Teile eines PresentationML-Präsentationsdateipakets.

Die Presentation -Klasse, die das <presentation/> -Element darstellt, ist daher auch einer Reihe anderer Klassen zugeordnet, die die untergeordneten Elemente des <presentation/> Elements darstellen. Zu diesen Klassen gehören, wie im folgenden Codebeispiel gezeigt, die SlideMasterIdListKlassen , SlideIdListSlideSize, NotesSizeund DefaultTextStyle .


Open XML SDK-Codebeispiel

Im folgenden Codebeispiel aus dem Artikel How to: Create a presentation document by providing a file name uses the Create method of the PresentationDocument class of the Open XML SDK to create an instance of same class that has the specified name and file path. Anschließend wird die AddPresentationPart -Methode verwendet, um der Dokumentdatei eine instance der PresentationPart -Klasse hinzuzufügen. Als Nächstes wird eine instance der Presentation Klasse erstellt, die die Präsentation darstellt. Er übergibt einen Verweis auf die PresentationPart Klasse instance an die CreatePresentationParts Prozedur, die die anderen erforderlichen Teile der Präsentationsdatei erstellt. Die CreatePresentation Prozedur bereinigt, indem die PresentationDocument Zuvor geöffnete Klasse instance geschlossen wird.

Die CreatePresentationParts Prozedur erstellt Instanzen der SlideMasterIdListKlassen , SlideIdList, SlideSize, NotesSizeund DefaultTextStyle und fügt sie an die Präsentation an.

static void CreatePresentation(string filepath)
{
    // Create a presentation at a specified file path. The presentation document type is pptx, by default.
    using (PresentationDocument presentationDoc = PresentationDocument.Create(filepath, PresentationDocumentType.Presentation))
    {
        PresentationPart presentationPart = presentationDoc.AddPresentationPart();
        presentationPart.Presentation = new Presentation();

        CreatePresentationParts(presentationPart);
    }
}

static void CreatePresentationParts(PresentationPart presentationPart)
{
    SlideMasterIdList slideMasterIdList1 = new SlideMasterIdList(new SlideMasterId() { Id = (UInt32Value)2147483648U, RelationshipId = "rId1" });
    SlideIdList slideIdList1 = new SlideIdList(new SlideId() { Id = (UInt32Value)256U, RelationshipId = "rId2" });
    SlideSize slideSize1 = new SlideSize() { Cx = 9144000, Cy = 6858000, Type = SlideSizeValues.Screen4x3 };
    NotesSize notesSize1 = new NotesSize() { Cx = 6858000, Cy = 9144000 };
    DefaultTextStyle defaultTextStyle1 = new DefaultTextStyle();

    presentationPart.Presentation.Append(slideMasterIdList1, slideIdList1, slideSize1, notesSize1, defaultTextStyle1);

    SlidePart slidePart1;
    SlideLayoutPart slideLayoutPart1;
    SlideMasterPart slideMasterPart1;
    ThemePart themePart1;


    slidePart1 = CreateSlidePart(presentationPart);
    slideLayoutPart1 = CreateSlideLayoutPart(slidePart1);
    slideMasterPart1 = CreateSlideMasterPart(slideLayoutPart1);
    themePart1 = CreateTheme(slideMasterPart1);

    slideMasterPart1.AddPart(slideLayoutPart1, "rId1");
    presentationPart.AddPart(slideMasterPart1, "rId1");
    presentationPart.AddPart(themePart1, "rId5");
}

Resultierendes 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:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
     <p:sldMasterIdLst>
      <p:sldMasterId id="2147483648" r:id="rId1" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
     </p:sldMasterIdLst>
     <p:sldIdLst>
      <p:sldId id="256" r:id="rId2" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
     </p:sldIdLst>
     <p:sldSz cx="9144000" cy="6858000" type="screen4x3"/>
     <p:notesSz cx="6858000" cy="9144000"/>
     <p:defaultTextStyle/>
    </p:presentation>

Siehe auch

Informationen zum Open XML SDK für Office

Vorgehensweise: Erstellen eines Präsentationsdokuments durch Angeben eines Dateinamens

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