Trabajando con temas de documento
Trabajando con temas de documentos
Esta guía muestra cómo leer y personalizar el esquema de color y fuente que los documentos de Word comparten con otras aplicaciones de Office — el tema del documento — usando Theme, ThemeColors, y ThemeFonts in Aspose.Words FOSS para .NET. El tema de un documento es la paleta y la combinación de fuentes que el formato consciente del tema en otras partes del modelo de objetos referencia en lugar de codificar de forma rígida un color o nombre de fuente específico.
El objeto Theme
Document.Theme devuelve una instancia Theme para el documento. Theme.Colors es un objeto ThemeColors que contiene los doce colores del tema del documento; Theme.MajorFonts y Theme.MinorFonts son objetos ThemeFonts que contienen los conjuntos de fuentes de encabezado y cuerpo, respectivamente.
Colores del tema
ThemeColors expone doce escribibles Color propiedades: Dark1, Light1, Dark2, Light2, Accent1 through Accent6, Hyperlink, y FollowedHyperlink. Objetos de formato en otras partes del documento — Border.ThemeColor, Shading.ForegroundPatternThemeColor / BackgroundPatternThemeColor, Fill.ForeThemeColor / BackThemeColor, Stroke.ForeThemeColor / BackThemeColor, y Font.ThemeColor – contenga un ThemeColor valor de enumeración (Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink, más Text1, Text2, Background1, Background2, y None) que identifica which ranura de color del tema se aplica; el real Color valor para esa ranura proviene del correspondiente ThemeColors propiedad activada Document.Theme.Colors.
Fuentes del tema
ThemeFonts expone tres propiedades string escribibles: Latin (para caracteres de escritura latina), EastAsian y ComplexScript — los nombres de fuente usados para cada escritura cuando un objeto de formato delega en el tema. Font.ThemeFont, ThemeFontAscii, ThemeFontFarEast, ThemeFontOther y ThemeFontBi cada uno contiene un valor enum ThemeFont (Major, Minor o None) que identifica si un objeto Font dado delega en Theme.MajorFonts o Theme.MinorFonts para un rango de escritura particular, en lugar de almacenar su propio nombre de fuente explícito.
Consejos y mejores prácticas
- Cambie un color en todos los bordes, sombreados, rellenos y fuentes conscientes del tema de una sola vez actualizando la propiedad
ThemeColorscorrespondiente enDocument.Theme.Colors, en lugar de recorrer el documento para actualizar cada objeto de formato individualmente. - Verifique si la propiedad
ThemeColoroThemeFontde un objeto de formato esNoneantes de asumir que delega en el tema —Nonesignifica que lleva su propioColorexplícito o nombre de fuente. Theme.MajorFontssuele proporcionar fuentes para encabezados yTheme.MinorFontsfuentes para el cuerpo, coincidiendo con el selector de fuentes de tema propio de Word.
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
Cambiar Document.Theme.Colors.Accent1 no afecta el relleno de una forma | El Fill.ForeThemeColor de la forma es ThemeColor.None, por lo que usa un color explícito en lugar de una ranura del tema | Establece Fill.ForeThemeColor al valor deseado de ThemeColor para que delegue en el tema |
La fuente renderizada de un Font no coincide con Theme.MajorFonts.Latin | El Font.ThemeFont (o variante específica del script) es ThemeFont.None, por lo que se usa el propio nombre de la fuente | Establezca la propiedad ThemeFont relevante a Major o Minor |
FAQ
¿Cómo leo los colores del tema de un documento?
Lea Document.Theme.Colors, un objeto ThemeColors con propiedades Color para cada una de las doce ranuras de color del tema — Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink y FollowedHyperlink.
¿Cómo cambio el color de acento del documento en todos los lugares donde se usa?
Establezca Document.Theme.Colors.Accent1 (o la ranura de acento que corresponda) a un nuevo Color; cada objeto de formato cuya propiedad ThemeColor haga referencia a esa ranura adopta el cambio.
¿Cuál es la diferencia entre ThemeColors y ThemeColor?
ThemeColors (en Document.Theme.Colors) es el objeto que contiene los doce valores reales de Color del documento. ThemeColor es el enum usado en otras partes (Border, Shading, Fill, Stroke, Font) para referenciar una de esas ranuras por nombre en lugar de almacenar directamente un color.
¿Cómo establezco qué fuente del tema usa un objeto Font?
Establezca Font.ThemeFont (o los específicos del script ThemeFontAscii / ThemeFontFarEast / ThemeFontOther / ThemeFontBi) a ThemeFont.Major o ThemeFont.Minor; el nombre real de la fuente proviene entonces de Document.Theme.MajorFonts o MinorFonts.
API Reference Resumen
| Clase / Enumeración | Descripción |
|---|---|
Theme | Tema del documento, a través de Document.Theme; MajorFonts, MinorFonts, Colors |
ThemeColors | Doce ranuras de tema Color: Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink |
ThemeFonts | Nombres de fuentes del tema por script: Latin, EastAsian, ComplexScript |
ThemeColor | Enumeración que identifica una ranura de color del tema; usada por Border, Shading, Fill, Stroke, Font |
ThemeFont | Enumeración que identifica el uso de fuentes del tema Major/Minor; usada por Font |