Partager via


Utilisation des diapositives de présentation

Cette rubrique décrit la classe Slide du Kit de développement logiciel (SDK) Open XML pour Office et sa relation avec le schéma PresentationML au format de fichier Open XML. Pour plus d’informations sur la structure globale des composants et éléments qui composent un document PresentationML, consultez Structure d’un document PresentationML**.


Diapositives de présentation en PresentationML

La spécification ISO/IEC 29500 décrit l’élément Open XML PresentationML <sld> utilisé pour représenter une diapositive de présentation dans un document PresentationML comme suit :

Cet élément spécifie une diapositive dans une liste de diapositives. La liste de diapositives sert à spécifier l’ordre des diapositives.

Exemple : Considérez le diaporama personnalisé suivant avec un classement des diapositives.

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

Dans l’exemple ci-dessus, l’ordre spécifié pour la présentation des diapositives est 4, 3, 2 et 5.

© ISO/IEC29500: 2008.

L’élément <sld> est l’élément racine du composant Slide PresentationML. Pour plus d’informations sur la structure complète des composants et des éléments qui constituent un document PresentationML, voir Structure d’un document PresentationML.

Le tableau suivant répertorie les éléments enfants de l’élément <sld> utilisé lors de l’utilisation des diapositives de présentation et des classes du Kit de développement logiciel (SDK) Open XML qui leur correspondent.

Élément PresentationML Classe du Kit de développement logiciel (SDK) Open XML
<clrMapOvr> Colormapoverride
<cSld> Commonslidedata
<extLst> Extensionlistwithmodification
<Timing> Timing
<Transition> Transition

Classe de diapositive du Kit de développement logiciel (SDK) Open XML

La classeSlide du Kit de développement logiciel (SDK) Open XML représente l’élément <sld> défini dans le schéma de format de fichier Open XML pour les documents PresentationML. Utilisez l’objet Slide pour manipuler des éléments sld> individuels <dans un document PresentationML.

Les classes communément associées à la classe Slide sont indiquées dans les sections suivantes.

Classe ColorMapOverride

La classe ColorMapOverride correspond à l’élément <clrMapOvr> . Les informations suivantes de la spécification ISO/IEC 29500 présentent l’élément <clrMapOvr> :

Cet élément fournit un mécanisme avec lequel remplacer les jeux de couleurs répertoriés dans l’élément <ClrMap> . Si l’élément <enfant masterClrMapping> est présent, le jeu de couleurs défini par le master est utilisé. Si l’élément <enfant overrideClrMapping> est présent, il définit un nouveau jeu de couleurs spécifique à la diapositive de notes parente, à la diapositive de présentation ou à la disposition des diapositives.

© ISO/IEC29500: 2008.

Classe CommonSlideData

La classe CommonSlideData correspond à l’élément <cSld> . Les informations suivantes de la spécification ISO/IEC 29500 présentent l’élément <cSld> :

Cet élément spécifie un conteneur pour le type d’informations de diapositive relatif à l’ensemble des types de diapositives. Toutes les diapositives partagent un ensemble commun de propriétés indépendantes du type de diapositive ; la description de ces propriétés pour une diapositive particulière est stockée dans le conteneur cSld> de <la diapositive. Les données de diapositive spécifiques au type de diapositive indiqué par l’élément parent sont stockées ailleurs.

Les données réelles dans <cSld> décrivent uniquement la diapositive parente particulière ; il s’agit uniquement du type d’informations stockées qui est commun à toutes les diapositives.

© ISO/IEC29500: 2008.

Classe ExtensionListWithModification

La classe ExtensionListWithModification correspond à l’élément <extLst>. Les informations suivantes de la spécification ISO/IEC 29500 introduisent l’élément <extLst> :

Cet élément spécifie la liste d’extensions avec possibilité de modification dans laquelle toutes les extensions futures de type <d’élément ext> sont définies. La liste des extensions et les extensions futures correspondantes sont utilisées pour étendre les possibilités de stockage de l’infrastructure PresentationML. Ceci permet à différents nouveaux types de données d’être stockés en mode natif dans l’infrastructure.

[Remarque : l’utilisation de cet élément extLst permet à l’application de génération de stocker l’information indiquant si cette propriété d’extension a été modifiée. Fin de la remarque]

© ISO/IEC29500: 2008.

Classe Timing

La classe Timing correspond à l’élément <minutage> . Les informations suivantes de la spécification ISO/IEC 29500 présentent l’élément <de minutage> :

Cet élément spécifie les informations de minutage pour la gestion de l’ensemble des animations et des événements minutés dans la diapositive correspondante. Ces informations sont suivies par le biais de nœuds de temps dans l’élément <de minutage> . Pour plus d’informations sur les spécificités relatives aux nœuds de temps et sur leur définition, voir la section de l’animation de l’infrastructure PresentationML.

© ISO/IEC29500: 2008.

Classe Transition

La classe Transition correspond à l’élément transition<>. Les informations suivantes de la spécification ISO/IEC 29500 présentent l’élément de <transition> :

Cet élément spécifie le type de transition à utiliser entre la diapositive actuelle et la diapositive précédente. En d’autres termes, les informations de transition sont stockées dans la diapositive qui s’affiche à l’issue de la transition.

© ISO/IEC29500: 2008.


Utilisation de la classe Slide

Comme indiqué dans l’exemple de code du Kit de développement logiciel (SDK) Open XML qui suit, chaque instance de la classe Slide est associée à un instance de la classe SlidePart, qui représente un composant diapositive, l’une des parties requises d’un package de fichier de présentation PresentationML. Chaque instance de la classe Slide doit également être associée à des instances des classes SlideLayout et SlideMaster, qui sont à leur tour associées à des parties de présentation requises de même nom, représentées par les classes SlideLayoutPart et SlideMasterPart.

La classe Slide , qui représente l’élément <sld> , est donc également associée à une série d’autres classes qui représentent les éléments enfants de l’élément <sld> . Parmi ces classes, comme illustré dans l’exemple de code suivant, citons la classe CommonSlideData , la classe ColorMapOverride , la classe ShapeTree et la classe Shape .


Exemple de code du Kit de développement logiciel (SDK) Open XML

La méthode suivante de l’article Guide pratique pour créer un document de présentation en fournissant un nom de fichier** ajoute un nouveau composant diapositive à une présentation existante et crée un instance de la classe Slide du Kit de développement logiciel (SDK) Open XML dans le nouveau composant diapositive. Le constructeur de la classe Slide crée des instances des classes CommonSlideData et ColorMapOverride. Le constructeur de classe CommonSlideData crée un instance de la classe ShapeTree, dont le constructeur crée à son tour des instances de classe supplémentaires : une instance de la classe NonVisualGroupShapeProperties, la classe GroupShapeProperties et la classe Shape.

Toutes ces instances de classe et instances des classes qui représentent les éléments enfants de l’élément <sld> sont nécessaires pour créer le nombre minimal d’éléments XML nécessaires pour représenter une nouvelle diapositive.

L’espace de noms représenté par la lettre P dans le code est l’espace de noms DocumentFormat.OpenXml.Presentation .

    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;
             }

Pour ajouter une autre forme à l’arborescence de formes et, par conséquent, à la diapositive, instanciez un second objet Shape en passant un paramètre supplémentaire qui contient le code suivant au constructeur ShapeTree.

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

PresentationML généré

Lorsque le code du Kit de développement logiciel (SDK) Open XML dans la méthode est exécuté, le code XML suivant est écrit dans le fichier de document PresentationML référencé dans le code.

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

Voir aussi

À propos du Kit de développement logiciel (SDK) Open XML pour Office

Guide pratique pour insérer une nouvelle diapositive dans une présentation

Guide pratique pour supprimer une diapositive d’une présentation

Guide pratique pour récupérer le nombre de diapositives dans un document de présentation

Guide pratique pour appliquer un thème à une présentation

Guide pratique pour créer un document de présentation en fournissant un nom de fichier