Lavorare con i temi del documento
Lavorare con i temi dei documenti
Questa guida mostra come leggere e personalizzare lo schema di colori e caratteri che i documenti Word condividono con le altre applicazioni Office – il tema del documento – utilizzando Theme, ThemeColors, e ThemeFonts in Aspose.Words FOSS per .NET. Il tema di un documento è la tavolozza e l’abbinamento di caratteri a cui la formattazione sensibile al tema altrove nel modello di oggetti fa riferimento, invece di codificare rigidamente un colore o un nome di carattere specifico.
L’oggetto Tema
Document.Theme restituisce un’istanza Theme per il documento. Theme.Colors è un oggetto ThemeColors che contiene i dodici colori del tema del documento; Theme.MajorFonts e Theme.MinorFonts sono oggetti ThemeFonts che contengono rispettivamente i set di caratteri per intestazioni e corpo.
Colori del tema
ThemeColors espone dodici scrivibili Color proprietà: Dark1, Light1, Dark2, Light2, Accent1 through Accent6, Hyperlink, e FollowedHyperlink. Oggetti di formattazione altrove nel documento – Border.ThemeColor, Shading.ForegroundPatternThemeColor / BackgroundPatternThemeColor, Fill.ForeThemeColor / BackThemeColor, Stroke.ForeThemeColor / BackThemeColor, e Font.ThemeColor – contiene un ThemeColor valore enum (Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink, più Text1, Text2, Background1, Background2, e None) che identifica which slot di colore del tema si applica; il reale Color valore per quello slot proviene dal corrispondente ThemeColors proprietà attiva Document.Theme.Colors.
Caratteri del tema
ThemeFonts espone tre proprietà string scrivibili: Latin (per caratteri a script latino), EastAsian e ComplexScript — i nomi dei font usati per ogni script quando un oggetto di formattazione rinvia al tema. Font.ThemeFont, ThemeFontAscii, ThemeFontFarEast, ThemeFontOther e ThemeFontBi contengono ciascuno un valore enum ThemeFont (Major, Minor o None) che identifica se un dato oggetto Font rinvia a Theme.MajorFonts o Theme.MinorFonts per un intervallo di script specifico, anziché memorizzare un nome di font esplicito proprio.
Suggerimenti e migliori pratiche
- Modifica un colore su tutti i bordi, le sfumature, i riempimenti e i caratteri sensibili al tema in un’unica operazione aggiornando la proprietà
ThemeColorspertinente suDocument.Theme.Colors, invece di scorrere il documento per aggiornare ogni oggetto di formattazione individualmente. - Verifica se la proprietà
ThemeColoroThemeFontdi un oggetto di formattazione èNoneprima di presumere che rinvii al tema —Noneindica che possiede il proprioColoro nome di font esplicito. Theme.MajorFontsfornisce tipicamente i font per i titoli eTheme.MinorFontsper il corpo del testo, corrispondendo al selettore di font del tema di Word.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
Modificare Document.Theme.Colors.Accent1 non influisce sul riempimento di una forma | Il Fill.ForeThemeColor della forma è ThemeColor.None, quindi utilizza un colore esplicito invece di uno slot del tema | Imposta Fill.ForeThemeColor sul valore ThemeColor desiderato così da delegare al tema |
Il font renderizzato di un Font non corrisponde a Theme.MajorFonts.Latin | Il Font.ThemeFont (o variante specifica per lo script) è ThemeFont.None, quindi viene utilizzato il nome proprio del font | Imposta la proprietà ThemeFont pertinente su Major o Minor |
FAQ
Come posso leggere i colori del tema di un documento?
Leggi Document.Theme.Colors, un oggetto ThemeColors con proprietà Color per ciascuno dei dodici slot di colore del tema – Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink e FollowedHyperlink.
Come posso cambiare il colore di accento del documento ovunque venga usato?
Imposta Document.Theme.Colors.Accent1 (o qualsiasi slot di accento) su un nuovo Color; ogni oggetto di formattazione la cui proprietà ThemeColor fa riferimento a quello slot acquisisce la modifica.
Qual è la differenza tra ThemeColors e ThemeColor?
ThemeColors (su Document.Theme.Colors) è l’oggetto che contiene i dodici valori effettivi di Color per il documento. ThemeColor è l’enumerazione usata altrove (Border, Shading, Fill, Stroke, Font) per fare riferimento a uno di quegli slot per nome invece di memorizzare direttamente un colore.
Come faccio a impostare quale font del tema utilizza un oggetto Font?
Imposta Font.ThemeFont (o i ThemeFontAscii / ThemeFontFarEast / ThemeFontOther / ThemeFontBi specifici dello script) su ThemeFont.Major o ThemeFont.Minor; il nome effettivo del font proviene quindi da Document.Theme.MajorFonts o MinorFonts.
API Reference Riepilogo
| Classe / Enum | Descrizione |
|---|---|
Theme | Tema del documento, tramite Document.Theme; MajorFonts, MinorFonts, Colors |
ThemeColors | Dodici slot Color del tema: Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink |
ThemeFonts | Nomi dei font del tema per script: Latin, EastAsian, ComplexScript |
ThemeColor | Enum che identifica uno slot di colore del tema; usato da Border, Shading, Fill, Stroke, Font |
ThemeFont | Enum che identifica l’uso del font del tema Major/Minor; usato da Font |