Работа с темами документа
Работа с темами документов
Это руководство показывает, как читать и настраивать цветовую и шрифтовую схему, которую документы Word используют совместно с другими приложениями Office — тему документа — с помощью Theme, ThemeColors, and ThemeFonts in Aspose.Words FOSS для .NET. Тема документа — это палитра и сочетание шрифтов, к которым обращается форматирование, учитывающее тему, в других частях объектной модели, вместо того чтобы жёстко задавать конкретный цвет или название шрифта.
Объект темы
Document.Theme возвращает экземпляр Theme для документа. Theme.Colors— это объект ThemeColors, содержащий двенадцать цветов темы документа; Theme.MajorFonts и Theme.MinorFonts являются объектами ThemeFonts, содержащими соответственно наборы шрифтов заголовков и основного текста.
Цвета темы
ThemeColors предоставляет двенадцать записываемых Color свойств: Dark1, Light1, Dark2, Light2, Accent1 through Accent6, Hyperlink, and FollowedHyperlink. Объекты форматирования в других частях документа — Border.ThemeColor, Shading.ForegroundPatternThemeColor / BackgroundPatternThemeColor, Fill.ForeThemeColor / BackThemeColor, Stroke.ForeThemeColor / BackThemeColor, и Font.ThemeColor – держит ThemeColor значение enum (Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink, плюс Text1, Text2, Background1, Background2, и None) который идентифицирует which слот цвета темы применяется; фактический Color значение для этого слота берётся из соответствующего ThemeColors свойство включено Document.Theme.Colors.
Шрифты темы
ThemeFonts предоставляет три записываемых свойства string: Latin (для символов латинского алфавита), EastAsian и ComplexScript – названия шрифтов, используемых для каждого скрипта, когда объект форматирования делегирует теме. Font.ThemeFont, ThemeFontAscii, ThemeFontFarEast, ThemeFontOther и ThemeFontBi каждый хранит значение перечисления ThemeFont (Major, Minor или None), определяющее, делегирует ли данный объект Font теме Theme.MajorFonts или Theme.MinorFonts для определённого диапазона скрипта, вместо того чтобы хранить собственное явное имя шрифта.
Советы и лучшие практики
- Измените цвет во всех границах, затенениях, заполнениях и шрифтах, учитывающих тему, одним правкой, обновив соответствующее свойство
ThemeColorsвDocument.Theme.Colors, вместо того чтобы проходить по документу и обновлять каждый объект форматирования по отдельности. - Проверьте, является ли свойство
ThemeColorилиThemeFontобъекта форматированияNone, прежде чем предполагать, что оно делегирует теме —Noneозначает, что оно содержит собственное явноеColorили имя шрифта. Theme.MajorFontsобычно предоставляет шрифты заголовков, аTheme.MinorFonts— шрифты основного текста, соответствуя встроенному в Word выборщику шрифтов темы.
Распространённые проблемы
| Проблема | Причина | Исправление |
|---|---|---|
Изменение Document.Theme.Colors.Accent1 не влияет на заливку фигуры | У фигуры Fill.ForeThemeColor — ThemeColor.None, поэтому используется явный цвет вместо слота темы | Установите Fill.ForeThemeColor в требуемое значение ThemeColor, чтобы он наследовал тему |
Отображаемый шрифт Font не совпадает с Theme.MajorFonts.Latin | Элемент Font.ThemeFont (или вариант, специфичный для скрипта) имеет значение ThemeFont.None, поэтому используется собственное название шрифта. | Установите соответствующее свойствоThemeFontв значениеMajorилиMinor. |
FAQ
Как прочитать цвета темы документа?
Прочитайте Document.Theme.Colors, объект ThemeColors с Color свойствами для каждого из двенадцати слотов цветовой темы — Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink и FollowedHyperlink.
Как изменить акцентный цвет документа во всех местах его использования?
Установите Document.Theme.Colors.Accent1 (или любой другой слот акцента) в новое значение Color; каждый объект форматирования, у которого свойство ThemeColor ссылается на этот слот, получит изменение.
В чём разница между ThemeColors и ThemeColor?
ThemeColors (на Document.Theme.Colors) — это объект, содержащий двенадцать реальных значений Color для документа. ThemeColor — это перечисление, используемое в других местах (Border, Shading, Fill, Stroke, Font) для ссылки на один из этих слотов по имени вместо прямого хранения цвета.
Как задать, какой шрифт темы использует объект Font?
Установите Font.ThemeFont (или скриптово-специфические ThemeFontAscii / ThemeFontFarEast / ThemeFontOther / ThemeFontBi) в значение ThemeFont.Major или ThemeFont.Minor; фактическое имя шрифта тогда берётся из Document.Theme.MajorFonts или MinorFonts.
API Reference Сводка
| Класс / Enum | Описание: |
|---|---|
Theme | Тема документа, через Document.Theme; MajorFonts, MinorFonts, Colors |
ThemeColors | Двенадцать слотов темы Color: Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink |
ThemeFonts | Названия шрифтов темы по скрипту: Latin, EastAsian, ComplexScript |
ThemeColor | Перечисление, идентифицирующее слот цвета темы; используется в Border, Shading, Fill, Stroke, Font |
ThemeFont | Перечисление, идентифицирующее использование шрифта темы Major/Minor; используется в Font |