Travailler avec les thèmes de document
Travailler avec les thèmes de document
Ce guide montre comment lire et personnaliser le jeu de couleurs et de polices que les documents Word partagent avec les autres applications Office — le thème du document — en utilisant Theme, ThemeColors, et ThemeFonts in Aspose.Words FOSS pour .NET. Le thème d’un document est la palette et l’association de polices que le formatage sensible au thème, ailleurs dans le modèle d’objet, utilise au lieu d’encoder en dur une couleur ou un nom de police spécifique.
L’objet Thème
Document.Theme renvoie une instance Theme pour le document. Theme.Colors est un objet ThemeColors contenant les douze couleurs du thème du document; Theme.MajorFonts et Theme.MinorFonts sont des objets ThemeFonts contenant respectivement les jeux de polices de titre et de corps.
Couleurs du thème
ThemeColors expose douze propriétés modifiables Color propriétés : Dark1, Light1, Dark2, Light2, Accent1 through Accent6, Hyperlink, et FollowedHyperlink. Objets de formatage ailleurs dans le document – Border.ThemeColor, Shading.ForegroundPatternThemeColor / BackgroundPatternThemeColor, Fill.ForeThemeColor / BackThemeColor, Stroke.ForeThemeColor / BackThemeColor, et Font.ThemeColor – contient un ThemeColor valeur d’énum (Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink, plus Text1, Text2, Background1, Background2, et None) qui identifie which le créneau de couleur du thème s’applique; le réel Color valeur pour cet emplacement provient du correspondant ThemeColors propriété activée Document.Theme.Colors.
Polices du thème
ThemeFonts expose trois propriétés string modifiables : Latin (pour les caractères à écriture latine), EastAsian et ComplexScript — les noms de police utilisés pour chaque écriture lorsqu’un objet de mise en forme renvoie au thème. Font.ThemeFont, ThemeFontAscii, ThemeFontFarEast, ThemeFontOther et ThemeFontBi contiennent chacun une valeur d’énumération ThemeFont (Major, Minor ou None) identifiant si un objet Font donné renvoie à Theme.MajorFonts ou Theme.MinorFonts pour une plage d’écriture particulière, plutôt que de stocker un nom de police explicite de son propre.
Conseils et bonnes pratiques
- Modifiez une couleur sur toutes les bordures, ombrages, remplissages et polices sensibles au thème d’un seul coup en mettant à jour la propriété
ThemeColorspertinente surDocument.Theme.Colors, au lieu de parcourir le document pour mettre à jour chaque objet de mise en forme individuellement. - Vérifiez si la propriété
ThemeColorouThemeFontd’un objet de mise en forme estNoneavant de supposer qu’il renvoie au thème —Nonesignifie qu’il possède son propreColorexplicite ou nom de police à la place. Theme.MajorFontsfournit généralement les polices de titre etTheme.MinorFontsles polices de corps, en accord avec le sélecteur de polices de thème de Word.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
Modifier Document.Theme.Colors.Accent1 n’affecte pas le remplissage d’une forme | Le Fill.ForeThemeColor de la forme est ThemeColor.None, donc elle utilise une couleur explicite au lieu d’un emplacement de thème | Définissez Fill.ForeThemeColor sur la valeur ThemeColor souhaitée afin qu’il se réfère au thème |
La police rendue d’un Font ne correspond pas à Theme.MajorFonts.Latin | Le Font.ThemeFont (ou variante spécifique au script) est ThemeFont.None, donc le nom propre de la police est utilisé à la place | Définissez la propriété ThemeFont pertinente sur Major ou Minor |
FAQ
Comment lire les couleurs de thème d’un document?
Lisez Document.Theme.Colors, un objet ThemeColors avec des propriétés Color pour chacun des douze emplacements de couleur du thème – Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink et FollowedHyperlink.
Comment changer la couleur d’accent du document partout où elle est utilisée?
Définissez Document.Theme.Colors.Accent1 (ou tout autre emplacement d’accent) sur un nouveau Color; chaque objet de mise en forme dont la propriété ThemeColor fait référence à cet emplacement prend le changement.
Quelle est la différence entre ThemeColors et ThemeColor?
ThemeColors (sur Document.Theme.Colors) est l’objet contenant les douze valeurs réelles de Color du document. ThemeColor est l’énumération utilisée ailleurs (Border, Shading, Fill, Stroke, Font) pour référencer l’un de ces emplacements par son nom au lieu de stocker directement une couleur.
Comment définir la police du thème qu’un objet Font utilise?
Définissez Font.ThemeFont (ou les ThemeFontAscii / ThemeFontFarEast / ThemeFontOther / ThemeFontBi spécifiques au script) sur ThemeFont.Major ou ThemeFont.Minor; le nom réel de la police provient alors de Document.Theme.MajorFonts ou MinorFonts.
API Reference Résumé
| Classe / Enum | Description |
|---|---|
Theme | Thème du document, via Document.Theme; MajorFonts, MinorFonts, Colors |
ThemeColors | Douze emplacements de thème Color : Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink |
ThemeFonts | Noms de polices du thème par script : Latin, EastAsian, ComplexScript |
ThemeColor | Énumération identifiant un emplacement de couleur de thème ; utilisée par Border, Shading, Fill, Stroke, Font |
ThemeFont | Énumération identifiant l’utilisation de la police du thème Major/Minor ; utilisée par Font |