使用文档主题

使用文档主题

使用文档主题

本指南展示了如何读取和自定义 Word 文档与其他 Office 应用共享的颜色和字体方案——文档主题——使用 Theme, ThemeColors,以及 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,以及 FollowedHyperlink. 文档其他位置的格式化对象—— Border.ThemeColor, Shading.ForegroundPatternThemeColor / BackgroundPatternThemeColor, Fill.ForeThemeColor / BackThemeColor, Stroke.ForeThemeColor / BackThemeColor,并且 Font.ThemeColor – 保存一个 ThemeColor 枚举值 (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 的特定脚本范围,而不是自行存储显式的字体名称。


提示与最佳实践

  • 通过在 Document.Theme.Colors 上更新相关的 ThemeColors 属性,一次性更改所有主题感知的边框、阴影、填充和字体的颜色,而无需逐个遍历文档并单独更新每个格式对象。
  • 在假设格式对象遵循主题之前,检查其 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,一个具有 Color 属性的 ThemeColors 对象,用于十二个主题颜色槽——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 摘要

类 / 枚举描述
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 使用

另请参阅

 中文