Работа с темами документа

Работа с темами документа

Работа с темами документов

Это руководство показывает, как читать и настраивать цветовую и шрифтовую схему, которую документы 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

См. также:

 Русский