Trabalhando com Temas de Documento

Trabalhando com Temas de Documento

Trabalhando com Temas de Documento

Este guia mostra como ler e personalizar o esquema de cores e fontes que os documentos do Word compartilham com outros aplicativos do Office – o tema do documento – usando Theme, ThemeColors, e ThemeFonts in Aspose.Words FOSS para .NET. O tema de um documento é a paleta e o emparelhamento de fontes que a formatação sensível ao tema em outras partes do modelo de objetos referencia em vez de codificar rigidamente uma cor ou nome de fonte específico.


O Objeto Tema

Document.Theme retorna uma instância Theme para o documento. Theme.Colors é um objeto ThemeColors que contém as doze cores do tema do documento; Theme.MajorFonts e Theme.MinorFonts são objetos ThemeFonts que contêm, respectivamente, os conjuntos de fontes de título e de corpo.


Cores do Tema

ThemeColors exibe doze graváveis Color propriedades: Dark1, Light1, Dark2, Light2, Accent1 through Accent6, Hyperlink, e FollowedHyperlink. Objetos de formatação em outras partes do documento – Border.ThemeColor, Shading.ForegroundPatternThemeColor / BackgroundPatternThemeColor, Fill.ForeThemeColor / BackThemeColor, Stroke.ForeThemeColor / BackThemeColor, e Font.ThemeColor – contém um ThemeColor valor enum (Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink, mais Text1, Text2, Background1, Background2, e None) que identifica which o slot de cor do tema se aplica; o real Color valor para esse slot vem do correspondente ThemeColors propriedade ativada Document.Theme.Colors.


Fontes do Tema

ThemeFonts expõe três propriedades string graváveis: Latin (para caracteres de script latino), EastAsian e ComplexScript – os nomes de fonte usados para cada script quando um objeto de formatação delega ao tema. Font.ThemeFont, ThemeFontAscii, ThemeFontFarEast, ThemeFontOther e ThemeFontBi contêm cada um um valor enum ThemeFont (Major, Minor ou None) identificando se um determinado objeto Font delega a Theme.MajorFonts ou Theme.MinorFonts para um intervalo de script específico, em vez de armazenar um nome de fonte explícito próprio.


Dicas e Melhores Práticas

  • Altere uma cor em todas as bordas, sombreamentos, preenchimentos e fontes sensíveis ao tema de uma só vez, atualizando a propriedade ThemeColors relevante em Document.Theme.Colors, em vez de percorrer o documento para atualizar cada objeto de formatação individualmente.
  • Verifique se a propriedade ThemeColor ou ThemeFont de um objeto de formatação está None antes de presumir que ele delega ao tema — None significa que ele possui seu próprio Color explícito ou nome de fonte.
  • Theme.MajorFonts normalmente fornece fontes de cabeçalho e fontes de corpo Theme.MinorFonts, correspondendo ao seletor de fontes de tema do Word.

Problemas Comuns

ProblemaCausaCorreção
Alterar Document.Theme.Colors.Accent1 não afeta o preenchimento de uma formaO Fill.ForeThemeColor da forma está ThemeColor.None, portanto usa uma cor explícita em vez de um slot de temaDefina Fill.ForeThemeColor para o valor desejado de ThemeColor para que ele delegue ao tema
A fonte renderizada do Font não corresponde a Theme.MajorFonts.LatinO Font.ThemeFont (ou variante específica do script) é ThemeFont.None, portanto o próprio nome da fonte é usado em vez dissoDefina a propriedade ThemeFont relevante para Major ou Minor

FAQ

Como ler as cores de tema de um documento?

Leia Document.Theme.Colors, um objeto ThemeColors com propriedades Color para cada um dos doze slots de cores do tema – Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink e FollowedHyperlink.

Como altero a cor de destaque do documento em todos os lugares onde é usada?

Defina Document.Theme.Colors.Accent1 (ou o slot de destaque que desejar) para um novo Color; todo objeto de formatação cuja propriedade ThemeColor referencia esse slot adota a mudança.

Qual é a diferença entre ThemeColors e ThemeColor?

ThemeColors (em Document.Theme.Colors) é o objeto que contém os doze valores reais de Color do documento. ThemeColor é o enum usado em outros lugares (Border, Shading, Fill, Stroke, Font) para referenciar um desses slots pelo nome em vez de armazenar uma cor diretamente.

Como defino qual fonte do tema um objeto Font utiliza?

Defina Font.ThemeFont (ou o ThemeFontAscii / ThemeFontFarEast / ThemeFontOther / ThemeFontBi específico do script) para ThemeFont.Major ou ThemeFont.Minor; o nome real da fonte então vem de Document.Theme.MajorFonts ou MinorFonts.


API Reference Resumo

Classe / EnumDescrição
ThemeTema do documento, via Document.Theme; MajorFonts, MinorFonts, Colors
ThemeColorsDoze slots de Color do tema: Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink
ThemeFontsNomes de fontes do tema por script: Latin, EastAsian, ComplexScript
ThemeColorEnum que identifica um slot de cor de tema; usado por Border, Shading, Fill, Stroke, Font
ThemeFontEnum que identifica o uso da fonte do tema Major/Minor; usado por Font

Ver também

 Português