Partager via


Utilisation des masques des diapositives

Cette rubrique décrit la classe SlideMaster du Kit de développement logiciel (SDK) Open XML pour Office et comment il est lié au schéma PresentationML au format de fichier Open XML.

Masques des diapositives en PresentationML

La spécification ISO/IEC 29500 décrit l’élément Open XML PresentationML <sldMaster> utilisé pour représenter les mises en page des diapositives dans un document PresentationML comme suit.

Cet élément spécifie une instance d’un masque des diapositives. Un masque des diapositives contient tous les éléments qui décrivent les objets et leur mise en forme correspondante au sein d’une diapositive de présentation. Un masque des diapositives contient deux éléments principaux. L’élément cSld spécifie les éléments de diapositive communs, par exemple les formes et leurs corps de texte associés. L’élément txStyles spécifie la mise en forme du texte contenu dans chacune de ces formes. Les autres propriétés présentes dans un masque des diapositives spécifient d’autres propriétés au sein d’une diapositive de présentation, par exemple les informations sur les couleurs, les en-têtes et les pieds de page, ainsi que les informations relatives aux minutages et aux transitions pour l’ensemble des diapositives de présentation correspondantes.

L’élément <sldMaster> est l’élément racine du composant Masque des diapositives 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 <sldMaster> utilisé lors de l’utilisation des masques de diapositives 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
<clrMap> Colormap
<cSld> Commonslidedata
<extLst> Extensionlistwithmodification
<Hf> HeaderFooter
<sldLayoutIdLst> Slidelayoutidlist
<Timing> Timing
<Transition> Transition
<txStyles> TextStyles

Le tableau suivant de la spécification ISO/IEC 29500 décrit les attributs de l’élément <sldMaster> .

Attributs Description
preserve (conserver le masque des diapositives) Spécifie si la mise en page des diapositives correspondante est supprimée lorsque toutes les diapositives basées sur cette mise en page sont supprimées. Si cet attribut n’est pas spécifié, la valeur false doit être prise en compte par l’application de génération. Cela signifie que la diapositive est supprimée, si elle n’a aucun lien avec d’autres diapositives de la présentation.
Les valeurs possibles de cet attribut sont définies par le type de données Boolean du schéma XML du W3C.

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

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

Les classes qui représentent des éléments enfants de l’élément <sldMaster> et qui sont donc couramment associées à la classe SlideMaster sont indiquées dans la liste suivante.

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.

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.

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 si cette propriété d’extension a été modifiée.

Classe HeaderFooter

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

Cet élément spécifie les informations d’en-tête et de pied de page d’une diapositive. Les en-têtes et les pieds de page contiennent des espaces réservés au texte dont la cohérence doit être assurée dans l’ensemble des diapositives et types de diapositives, par exemple une date et heure, un numéro de diapositive, ainsi que du texte d’en-tête et de pied de page personnalisé.

Classe SlideLayoutIdList

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

Cet élément spécifie l’existence de la liste d’identification des mises en page des diapositives. Cette liste est contenue dans le masque des diapositives et sert à identifier les mises en page utilisées dans le fichier de masque des diapositives. Chaque mise en page de la liste de mises en page des diapositives a un numéro d’identification qui lui est propre, ainsi qu’un identificateur de relation qui l’identifie de manière unique dans le document de présentation et la diapositive principale où elle est utilisée.

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.

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.

Classe TextStyles

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

Cet élément spécifie les styles de texte d’un masque des diapositives. Cet élément contient les informations de style pour le titre, le corps de texte et le reste du texte d’une diapositive. Cet élément doit être utilisé uniquement dans le masque des diapositives ; il définit par conséquent les styles de texte des diapositives de présentation correspondantes.

Prenons le cas où nous aimerions spécifier le texte de titre d’une diapositive master.

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

Dans l’exemple précédent, le texte du titre est défini en fonction de la mise en forme ci-dessus pour toutes les diapositives associées dans la présentation.

Utilisation de la classe SlideMaster

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

La classe SlideMaster , qui représente l’élément <sldMaster> , est donc également associée à une série d’autres classes qui représentent les éléments enfants de l’élément <sldMaster> . Parmi ces classes, comme indiqué dans l’exemple de code suivant, citons la classe CommonSlideData , la classe ColorMap , 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 masque des diapositives à une présentation existante et crée un instance d’une classeSlideMaster du Kit de développement logiciel (SDK) Open XML dans le nouveau composant master diapositive. Le constructeur de la classe SlideMaster crée des instances de la classe CommonSlideData, ainsi que des classes ColorMap, SlideLayoutIdList et TextStyles. 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 : un instance de la classe NonVisualGroupShapeProperties, un instance de la classe GroupShapeProperties et un instance de la classe Shape, entre autres.

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

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Drawing;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Presentation;
using D = DocumentFormat.OpenXml.Drawing;
using P = DocumentFormat.OpenXml.Presentation;

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