Travailler avec les styles

Travailler avec les styles

Travailler avec les styles

Ce guide montre comment travailler avec les styles de paragraphe, de caractère, de tableau et de liste dans Aspose.Words FOSS pour .NET — rechercher et appliquer les styles intégrés et personnalisés, et configurer le formatage conditionnel par région sur les styles de tableau.

Un objet Style représente un style unique intégré ou défini par l’utilisateur — la collection nommée de formatage de paragraphe, de police et de liste que Word applique lorsqu’un paragraphe ou une séquence de texte se voit attribuer ce style. Chaque document expose ses styles via la propriété Document.Styles, qui renvoie un StyleCollection. Les styles de tableau sont représentés par TableStyle, une sous-classe de Style qui ajoute un formatage spécifique aux tableaux et un formatage conditionnel par région via ConditionalStyleCollection.


Types de styles et identification

Chaque Style possède une propriété Type de type StyleType, qui est l’une de Paragraph, Character, Table ou List — correspondant aux quatre types de styles pris en charge par Word. Les styles intégrés possèdent également une valeur d’énumération StyleIdentifier indépendante de la langue (par exemple des valeurs correspondant aux styles de titre, d’emphase et de lien hypertexte) afin que le code puisse rechercher un style intégré sans dépendre de son nom affiché dans une langue particulière. Le nom lisible par l’homme d’un style est disponible via Style.Name, et Style.Aliases renvoie les éventuels noms alternatifs que Word reconnaît pour le même style. Style.BuiltIn indique si le style est fourni avec Word lui-même ou s’il est défini dans le document, et Style.IsHeading indique si le style fait partie des styles de titre intégrés.

Accéder à la collection de styles et la gérer

StyleCollection est la collection de tous les objets Style — intégrés et personnalisés — attachés à un document, accessible via Document.Styles. Récupérez un style par son nom affiché à l’aide de l’indexeur StyleCollection — styles[name] — ou récupérez un style intégré par son StyleIdentifier indépendant de la langue en utilisant le même indexeur — styles[sti] — ce qui est plus fiable que la recherche par nom dans des documents rédigés dans différentes langues. Les nouveaux styles sont créés avec StyleCollection.Add(type, name), en spécifiant le StyleType et un nom, et un style existant peut être dupliqué dans la collection avec StyleCollection.AddCopy(style). StyleCollection.Count indique le nombre de styles que le document contient, et la collection expose également DefaultFont et DefaultParagraphFormat, qui décrivent le formatage par défaut du document que le nouveau contenu hérite avant l’application d’un style explicite. StyleCollection.ClearQuickStyleGallery() supprime tous les styles de la galerie de styles rapides de l’interface Word sans supprimer les styles eux-mêmes.

Appliquer des styles aux paragraphes et aux segments

Les objets de mise en forme qui peuvent porter un style exposent à la fois une propriété Style (l’objet Style lui-même) et une propriété StyleName (un raccourci qui résout ou crée un style par son nom). ParagraphFormat.Style et ParagraphFormat.StyleName appliquent un style de paragraphe, tandis que Font.Style et Font.StyleName appliquent un style de caractère au formatage d’un run. Les propriétés LinkedStyleName, BaseStyleName et NextParagraphStyleName d’un style décrivent comment il se rapporte aux autres styles: BaseStyleName indique le style dont il hérite du formatage non défini, LinkedStyleName indique un style de paragraphe/caractère apparié (comme Word le fait pour les styles intégrés tels que Heading 1 et son style de caractère lié), et NextParagraphStyleName indique le style que Word attribue à un nouveau paragraphe saisi après un paragraphe utilisant ce style.

Styles de tableau et mise en forme conditionnelle

TableStyle étend Style avec des propriétés de mise en page de tableau telles que Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment et le remplissage (LeftPadding, RightPadding, TopPadding, BottomPadding), ainsi que RowStripe et ColumnStripe, qui contrôlent le nombre de lignes ou de colonnes sur lesquelles un motif de bandes se répète. Au-delà d’une mise en forme de tableau uniforme, TableStyle.ConditionalStyles renvoie un ConditionalStyleCollection contenant un ConditionalStyle par région de tableau — FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding, et les quatre cellules d’angle (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Chaque ConditionalStyle possède ses propres Font, ParagraphFormat, Shading, Borders et son remplissage de cellule, et sa propriété Type indique quelle région ConditionalStyleType elle représente. ConditionalStyle.ClearFormatting() et ConditionalStyleCollection.ClearFormatting() réinitialisent la mise en forme pour une région ou l’ensemble complet des régions conditionnelles.

Métadonnées de style et indicateurs de comportement

Plusieurs propriétés booléennes et numériques sur Style contrôlent la façon dont Word traite un style dans son interface utilisateur plutôt que la façon dont il le rend: Locked empêche la modification du style lorsque la protection du formatage est active, IsQuickStyle contrôle son affichage dans la galerie de styles rapides, AutomaticallyUpdate fait que le style se redéfinit à partir du formatage direct appliqué manuellement, SemiHidden et UnhideWhenUsed contrôlent la visibilité dans la liste des styles avant et après la première utilisation, et Priority influence l’ordre de tri dans la galerie. Un style expose également les propriétés List et ListFormat lorsqu’il définit la numérotation des listes, et Style.Remove() supprime le style de son StyleCollection.


Conseils et bonnes pratiques

  • Privilégiez l’indexeur StyleCollection avec une valeur StyleIdentifier plutôt que la recherche par nom lors de la localisation d’un style intégré— les noms sont localisés, mais les valeurs StyleIdentifier ne le sont pas.
  • Définissez BaseStyleName pour créer des hiérarchies de styles (par exemple, un ensemble de styles de titres qui héritent tous des choix de police à partir d’un style de base) au lieu de répéter le formatage sur chaque style.
  • Lors de la copie d’un style entre documents, utilisez StyleCollection.AddCopy(style) plutôt que de lire manuellement et de réappliquer chaque propriété de formatage.
  • Configurez des régions TableStyle.ConditionalStyles pour les tableaux à bandes au lieu de formater manuellement les lignes alternées dans le code — le formatage de chaque région ConditionalStyle est appliqué en fonction de son ConditionalStyleType, plutôt qu’en définissant un formatage direct sur chaque ligne.
  • Vérifiez Style.BuiltIn avant de supprimer ou de renommer un style par programme ; les styles intégrés sont généralement référencés par leur nom ailleurs dans le document.

Problèmes courants

ProblèmeCauseCorrection
StyleCollection indexer renvoie null pour une recherche de nomLe nom du style n’existe pas dans ce document, ou un style intégré n’a pas encore été utilisé, si bien que Word ne l’a pas encore matérialisé.Vérifiez Style.Aliases pour des noms alternatifs, ou utilisez l’indexeur StyleCollection avec un StyleIdentifier pour les styles intégrés à la place
Définir StyleName crée de manière inattendue un nouveau styleStyleName crée le style nommé s’il n’existe pas déjà dans la collectionUtilisez d’abord l’indexeur StyleCollection pour confirmer que le style existe, ou assignez l’objet Style directement via la propriété Style
Le banding du tableau n’apparaît pas après l’application d’un TableStyleLes régions de mise en forme conditionnelle (OddRowBanding, EvenRowBanding, etc.) n’ont jamais été configurées sur TableStyle.ConditionalStylesDéfinissez la mise en forme sur les entrées ConditionalStyle pertinentes dans ConditionalStyleCollection
Une modification de style n’affecte pas le contenu qui utilise déjà le styleUn formatage direct (manuel) a été appliqué au-dessus du style et l’emporteEffacez le formatage direct sur les passages/paragraphes concernés, ou définissez Style.AutomaticallyUpdate

FAQ

Comment obtenir la collection de tous les styles d’un document?

Lisez Document.Styles, qui renvoie un StyleCollection contenant tous les Style intégrés et définis par l’utilisateur dans ce document.

Quelle est la différence entre Style et StyleIdentifier?

Style est l’objet de style réel avec son formatage ; StyleIdentifier est une valeur d’énumération indépendante de la locale utilisée pour rechercher un spécifique intégré style indépendamment de la langue du document, via le StyleCollection indexeur.

En quoi les styles de tableau diffèrent-ils des styles de paragraphe ou de caractère?

TableStyle est une sous-classe de Style qui ajoute des propriétés de mise en page de tableau (Alignment, CellSpacing, padding) et une collection ConditionalStyles pour le formatage spécifique à une région tel que les lignes bandées, les lignes d’en-tête et les cellules d’angle — des concepts de formatage qui ne s’appliquent pas aux styles de paragraphe ou de caractère.

Puis-je créer un tout nouveau style au lieu de modifier un existant?

Oui — appelez StyleCollection.Add(type, name) avec le StyleType souhaité et un nouveau nom pour créer un style vide, puis définissez ses propriétés de formatage (Font, ParagraphFormat, etc. pour les styles de paragraphe/caractère).

Comment dupliquer un style, y compris depuis un autre document?

Utilisez StyleCollection.AddCopy(style), en transmettant un objet Style (qui peut provenir du StyleCollection d’un autre Document) pour ajouter une copie à la collection cible.


API Reference Résumé

Classe/MéthodeDescription
StyleUn seul style de paragraphe, de caractère, de tableau ou de liste intégré ou défini par l’utilisateur
StyleCollectionLa collection de tous les styles d’un document, accessible via Document.Styles
indexeur StyleCollection par nomRechercher un style par son nom d’affichage, par ex. styles["Heading 1"]
indexeur StyleCollection par identifiantRechercher un style intégré par identifiant indépendant de la locale, par ex. styles[StyleIdentifier.Heading1]
StyleCollection.Add(type, name)Créer un nouveau style vide du StyleType fourni
StyleCollection.AddCopy(style)Copier un style existant dans cette collection
StyleTypeEnum distinguant les styles Paragraph, Character, Table et List
StyleIdentifierIdentifiant indépendant de la locale pour un style intégré
TableStyleUne sous-classe Style pour le formatage de tableau, incluant un style conditionnel par région
ConditionalStyleCollectionL’ensemble des entrées ConditionalStyle par région sur un TableStyle
ConditionalStyleMise en forme (police, format de paragraphe, ombrage, bordures, remplissage) pour une région de tableau
ConditionalStyleTypeEnum identifiant à quelle région de tableau un ConditionalStyle s’applique

Voir aussi

 Français