Arbeta med dokumentteman
Arbeta med dokumentteman
Den här guiden visar hur man läser och anpassar färg- och teckensnittsschemat som Word-dokument delar med andra Office-program – dokumenttemat – med hjälp av Theme, ThemeColors, och ThemeFonts in Aspose.Words FOSS för .NET. Ett dokuments tema är paletten och teckensnittsparningen som temamedveten formatering på andra ställen i objektmodellen refererar till i stället för att hårdkoda en specifik färg eller teckensnittsnamn.
Temaobjektet
Document.Theme returnerar en Theme-instans för dokumentet. Theme.Colors är ett ThemeColors-objekt som innehåller dokumentets tolv temafärger; Theme.MajorFonts och Theme.MinorFonts är ThemeFonts-objekt som innehåller rubrik- respektive brödtextteckensnittssatser.
Temafärger
ThemeColors exponerar tolv skrivbara Color egenskaper: Dark1, Light1, Dark2, Light2, Accent1 through Accent6, Hyperlink, och FollowedHyperlink. Formateringsobjekt på andra ställen i dokumentet – Border.ThemeColor, Shading.ForegroundPatternThemeColor / BackgroundPatternThemeColor, Fill.ForeThemeColor / BackThemeColor, Stroke.ForeThemeColor / BackThemeColor, och Font.ThemeColor – håll en ThemeColor enumvärde (Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink, plus Text1, Text2, Background1, Background2, och None) som identifierar which tema färgslot tillämpas; den faktiska Color värde för den sloten kommer från motsvarande ThemeColors egenskap på Document.Theme.Colors.
Temateckensnitt
ThemeFonts exponerar tre skrivbara string egenskaper: Latin (för latin-skripttecken), EastAsian och ComplexScript – typsnamsnamnen som används för varje skript när ett formateringsobjekt hänvisar till temat. Font.ThemeFont, ThemeFontAscii, ThemeFontFarEast, ThemeFontOther och ThemeFontBi innehåller var och en ett ThemeFont enum-värde (Major, Minor eller None) som identifierar om ett givet Font-objekt hänvisar till Theme.MajorFonts eller Theme.MinorFonts för ett visst skriptintervall, snarare än att lagra ett explicit typsnittnamn själv.
Tips och bästa praxis
- Ändra en färg i alla temamedvetna kanter, skuggning, fyllning och typsnitt i en enda redigering genom att uppdatera den relevanta
ThemeColors-egenskapen påDocument.Theme.Colors, istället för att gå igenom dokumentet och uppdatera varje formateringsobjekt individuellt. - Kontrollera om ett formateringsobjekts
ThemeColorellerThemeFontegenskap ärNoneinnan du antar att det hänvisar till temat –Nonebetyder att det har sitt eget explicitaColoreller typsnamsnamn istället. Theme.MajorFontslevererar vanligtvis rubriktypsnitt ochTheme.MinorFontsbrödtexttypsnitt, vilket matchar Word’s egna tematypsnittsväljare.
Vanliga problem
| Problem | Orsak | Åtgärd |
|---|---|---|
Att ändra Document.Theme.Colors.Accent1 påverkar inte en formens fyllning | Formens Fill.ForeThemeColor är ThemeColor.None, så den använder en explicit färg istället för en temaplats | Ställ in Fill.ForeThemeColor på önskat ThemeColor-värde så den hänvisar till temat |
En Fonts renderade teckensnitt matchar inte Theme.MajorFonts.Latin | Den Font.ThemeFont (eller skript-specifik variant) är ThemeFont.None, så teckensnittets eget namn används istället | Ställ in den relevanta ThemeFont egenskapen till Major eller Minor |
FAQ
Hur läser jag ett dokuments temafärger?
Läs Document.Theme.Colors, ett ThemeColors-objekt med Color egenskaper för var och en av de tolv temafärgsplatserna – Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink och FollowedHyperlink.
Hur ändrar jag dokumentets accentfärg överallt där den används?
Ställ in Document.Theme.Colors.Accent1 (eller den aktuella accentplatsen) till ett nytt Color; varje formateringsobjekt vars ThemeColor-egenskap refererar till den platsen får förändringen.
Vad är skillnaden mellan ThemeColors och ThemeColor?
ThemeColors (på Document.Theme.Colors) är objektet som innehåller de tolv faktiska Color-värdena för dokumentet. ThemeColor är enum som används på andra ställen (Border, Shading, Fill, Stroke, Font) för att referera till en av dessa platser med namn istället för att lagra en färg direkt.
Hur anger jag vilket temafont ett Font-objekt använder?
Ställ in Font.ThemeFont (eller det skript-specifika ThemeFontAscii / ThemeFontFarEast / ThemeFontOther / ThemeFontBi) till ThemeFont.Major eller ThemeFont.Minor; det faktiska teckensnittsnamnet kommer då från Document.Theme.MajorFonts eller MinorFonts.
API Reference Sammanfattning
| Klass / Enum | Beskrivning |
|---|---|
Theme | Dokumenttema, via Document.Theme; MajorFonts, MinorFonts, Colors |
ThemeColors | Tolv tema Color slots: Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink |
ThemeFonts | Temats teckensnittsnamn per skript: Latin, EastAsian, ComplexScript |
ThemeColor | Enum som identifierar en temafärgsplats; används av Border, Shading, Fill, Stroke, Font |
ThemeFont | Enum som identifierar Major/Minor-temafontanvändning; används av Font |