Comment travailler avec les styles dans .NET
Ce guide montre comment rechercher, appliquer et créer des styles de paragraphe, de caractère, de tableau et de liste dans Aspose.Words FOSS pour .NET, en utilisant le Style, StyleCollection, et TableStyle classes. Il couvre la lecture de la collection de styles d’un document, la recherche fiable de styles à travers les langues, l’application de styles aux paragraphes et aux portions, la création et la copie de styles, ainsi que la configuration du formatage conditionnel par région sur les styles de tableau.
Guide étape par étape
Étape 1 : installer le package
Aspose.Words FOSS pour .NET ne publie pas encore de package NuGet – construisez la bibliothèque à partir du code source à la place. Clonez https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, puis compilez Aspose.Words.sln en configuration Release avec le SDK .NET et référencez l’assembly Aspose.Words résultant dans votre projet. La bibliothèque cible .NET Standard 2.0, elle s’exécute donc sur le Framework .NET 4.6.2+ et .NET 6/8/10.
Étape 2 : importer les classes requises
Ajoutez une directive using Aspose.Words; – Style, StyleCollection, TableStyle, StyleType, StyleIdentifier, ConditionalStyle, ConditionalStyleCollection et ConditionalStyleType se trouvent tous dans l’espace de noms Aspose.Words aux côtés de Document.
Étape 3 : Lire la collection de styles d’un document
Document.Styles renvoie un StyleCollection — chaque Style intégré et défini par l’utilisateur attaché au document. StyleCollection.Count indique combien de styles il contient, et DefaultFont / DefaultParagraphFormat décrivent le formatage par défaut du document dont le nouveau contenu hérite avant qu’un style explicite ne soit appliqué.
Étape 4 : Rechercher un style de manière fiable
Récupérez un style par son nom d’affichage à l’aide de l’indexeur StyleCollection, styles[name]. Pour les styles intégrés, privilégiez le même indexeur avec une valeur d’énumération StyleIdentifier — styles[sti] — les noms sont localisés, mais les valeurs StyleIdentifier ne le sont pas, ainsi la recherche par identifiant fonctionne de la même manière quel que soit la langue du document. Vérifiez Style.Aliases pour les noms alternatifs que Word reconnaît pour le même style si l’indexeur ne trouve pas ce que vous attendez, et consultez Style.BuiltIn avant de supprimer ou de renommer un style par programmation, car les styles intégrés sont souvent référencés par leur nom ailleurs dans le document.
Étape 5 : Appliquer un style aux paragraphes ou aux segments
Les objets de formatage qui portent 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). Définissez ParagraphFormat.Style ou ParagraphFormat.StyleName pour appliquer un style de paragraphe, et Font.Style ou Font.StyleName pour appliquer un style de caractère au formatage d’un segment. Attribuer StyleName avec un nom qui n’existe pas encore dans la collection crée ce style — confirmez d’abord que le style existe avec l’indexeur StyleCollection, ou assignez directement l’objet Style, si ce n’est pas le comportement prévu.
Étape 6 : Construire des hiérarchies de styles
Lisez BaseStyleName pour trouver le style dont un style donné hérite du formatage non défini, LinkedStyleName pour un style de paragraphe/caractère apparié (comme Word le définit pour les styles intégrés tels qu’un titre et son style de caractère lié), et NextParagraphStyleName pour le style que Word attribue à un nouveau paragraphe saisi après un paragraphe utilisant ce style. Définissez BaseStyleName lors de la création d’un ensemble de styles liés — par exemple une famille de styles de titres qui doivent tous hériter des choix de police d’un style de base — au lieu de répéter le même formatage sur chaque style.
Étape 7: créer ou copier un style
Appelez StyleCollection.Add(type, name) avec un StyleType (Paragraph, Character, Table ou List) et un nom pour créer un nouveau style vide, puis définissez ses propriétés Font et ParagraphFormat selon les besoins. Pour dupliquer un style existant – y compris un provenant du StyleCollection d’un autre Document – appelez StyleCollection.AddCopy(style) plutôt que de lire manuellement et de réappliquer chaque propriété de formatage. Appelez Style.Remove() pour supprimer un style de sa collection.
Étape 8: configurer les styles de tableau et le formatage conditionnel
TableStyle étend Style avec des propriétés de mise en page de tableau – Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment et les quatre propriétés de 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 bande se répète. Pour un formatage par région, configurez TableStyle.ConditionalStyles – un ConditionalStyleCollection contenant un ConditionalStyle par région: 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 remplissage de cellule, Type indiquant quelle région ConditionalStyleType il représente; appliquez le formatage sur ces régions plutôt que sur les lignes de tableau individuelles pour obtenir un formatage en bandes, en ligne d’en-tête ou en cellule d’angle qui survit aux modifications du tableau.
Étape 9: réinitialiser ou supprimer le formatage
Appelez ConditionalStyle.ClearFormatting() pour réinitialiser une région conditionnelle, ou ConditionalStyleCollection.ClearFormatting() pour réinitialiser toutes les régions d’un TableStyle en une fois. StyleCollection.ClearQuickStyleGallery() supprime chaque style de la galerie de styles rapides de l’interface Word sans supprimer les styles eux-mêmes – pratique pour réduire la galerie sans toucher au contenu du document.
Problèmes courants et solutions
StyleCollection l’indexeur renvoie null pour une recherche de nom Le nom du style n’existe pas dans ce document, ou un style intégré n’a pas encore été utilisé, donc Word ne l’a pas matérialisé. Vérifiez Style.Aliases les noms alternatifs, ou utilisez le StyleCollection indexeur avec un StyleIdentifier pour les styles intégrés à la place.
Définir StyleName crée de manière inattendue un nouveau style StyleName crée le style nommé s’il n’existe pas déjà dans la collection. Utilisez le StyleCollection indexeur d’abord pour confirmer que le style existe, ou attribuez le Style objet directement via le Style propriété au lieu de StyleName.
Le banding du tableau n’apparaît pas après l’application d’un TableStyle Les régions de mise en forme conditionnelle – OddRowBanding, EvenRowBanding, et similaires – n’ont jamais été configurées sur TableStyle.ConditionalStyles. Définissez la mise en forme sur les entrées pertinentes ConditionalStyle entrées dans ConditionalStyleCollection.
Une modification de style n’affecte pas le contenu qui utilise déjà le style La mise en forme directe (manuelle) appliquée au-dessus du style prend le pas sur les paramètres du style. Effacez la mise en forme directe sur les portions ou paragraphes concernés, ou définissez Style.AutomaticallyUpdate afin que le style se redéfinisse à partir de cette mise en forme manuelle.
Une recherche de style intégré échoue dans un document rédigé dans une autre langue Le StyleCollection l’indexer correspond au nom d’affichage, qui est localisé, lorsqu’il est appelé avec un nom. Utilisez le même indexer avec la valeur d’enum correspondante StyleIdentifier à la place, car cet identifiant est indépendant de la langue.
Foire aux questions
Comment obtenir la collection de tous les styles dans 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 style intégré spécifique, quel que soit la langue du document, via l’indexeur StyleCollection.
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, comme les lignes à bandes, 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 style 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 ou de caractère).
Comment dupliquer un style, y compris depuis un autre document?
Appelez StyleCollection.AddCopy(style), en transmettant un objet Style — qui peut provenir du StyleCollection d’un autre Document — pour ajouter une copie de celui-ci à la collection cible.