Campos de Equações e Fórmulas
Campos de Equações e Fórmulas
Este guia mostra como trabalhar com o FieldAdvance and FieldSymbol classes de campo em Aspose.Words FOSS para .NET, que implementam Word’s ADVANCE and SYMBOL campos. Ambas as classes derivam de Field e implementam IFieldCodeTokenInfoProvider; para o modelo base Field do modelo de objeto em si, veja o Trabalhando com Campos guia.
Reposicionamento de Texto com FieldAdvance
FieldAdvance implementa o campo ADVANCE, que desloca o texto que o segue sem inserir caracteres visíveis. DownOffset, UpOffset, LeftOffset e RightOffset (todos string) movem o texto subsequente por um número de pontos naquela direção. HorizontalPosition e VerticalPosition (também string) movem o texto subsequente para uma posição absoluta medida a partir da borda esquerda da coluna, quadro ou caixa de texto, e da borda superior da página, respectivamente.
Inserindo Caracteres Especiais com FieldSymbol
FieldSymbol implementa o campo SYMBOL, que insere um único caractere por ponto de código. CharacterCode (string) fornece o ponto de código do caractere em decimal ou hexadecimal. IsAnsi, IsUnicode e IsShiftJis (todos bool) selecionam como CharacterCode é interpretado. FontName e FontSize (string) definem a fonte usada para renderizar o caractere recuperado, e DontAffectsLineSpacing (bool) controla se o caractere inserido afeta o espaçamento de linhas do parágrafo.
Dicas e Melhores Práticas
- Defina apenas um de
IsAnsi,IsUnicodeouIsShiftJisem umFieldSymbolpara evitar uma interpretação ambígua deCharacterCode. - As propriedades de deslocamento de
FieldAdvancesãostring, não tipos numéricos — passe valores de ponto como strings ao definirDownOffset,UpOffset,LeftOffset,RightOffset,HorizontalPositionouVerticalPosition. - Defina
FieldSymbol.FontNamepara uma fonte que realmente contenha o glifo emCharacterCode, ou o caractere renderizado pode recair para um placeholder de glifo ausente. - Chame
Update()após alterar qualquer propriedade emFieldAdvanceouFieldSymbolpara que oResult/DisplayResultdo campo reflita a alteração. - Use
DontAffectsLineSpacingao inserir um caractere de símbolo alto ou incomum que não deve esticar a altura da linha ao redor.
Problemas comuns
| Problema | Causa | Correção |
|---|---|---|
O campo ADVANCE não move o texto como esperado | A propriedade de offset errada foi definida, ou um valor foi deixado no padrão | Defina a propriedade específica DownOffset / UpOffset / LeftOffset / RightOffset (relativa) ou HorizontalPosition / VerticalPosition (absoluta) que corresponda ao movimento pretendido |
O campo SYMBOL exibe o caractere errado | CharacterCode foi interpretado com a codificação errada | Defina exatamente um de IsAnsi, IsUnicode ou IsShiftJis para corresponder ao modo como CharacterCode foi criado |
| Caractere de símbolo é renderizado como uma caixa de glifo ausente | FontName não contém um glifo para CharacterCode | Defina FontName para uma fonte conhecida por incluir esse caractere |
FAQ
O que o campo ADVANCE faz?
Ele reposiciona o texto que o segue, seja por um deslocamento relativo (DownOffset, UpOffset, LeftOffset, RightOffset) ou uma posição absoluta (HorizontalPosition, VerticalPosition), sem inserir caracteres visíveis.
Como insiro um caractere Unicode específico com FieldSymbol?
Defina CharacterCode como o ponto de código do caractere, defina IsUnicode = true, e opcionalmente defina FontName / FontSize para a renderização do glifo.
Os valores de deslocamento de FieldAdvance são números ou strings?
Eles são propriedades de string (DownOffset, UpOffset, LeftOffset, RightOffset, HorizontalPosition, VerticalPosition), correspondendo ao formato bruto de argumento de field-code.
Inserir um caractere SÍMBOLO afeta o espaçamento entre linhas?
Defina DontAffectsLineSpacing como true para impedir que o caractere inserido afete a altura da linha do parágrafo.
API Reference Resumo
| Classe/Método | Descrição |
|---|---|
FieldAdvance | Implementa o campo ADVANCE; reposiciona o texto subsequente sem inserir caracteres |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | Deslocamentos de ponto relativos aplicados ao texto seguinte |
FieldAdvance.HorizontalPosition / VerticalPosition | Posição absoluta do ponto aplicada ao texto a seguir |
FieldSymbol | Implementa o campo SYMBOL; insere um caractere por ponto de código |
FieldSymbol.CharacterCode | O ponto de código do caractere, em decimal ou hexadecimal |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | Seleciona como CharacterCode é interpretado |
FieldSymbol.FontName / FontSize | Fonte usada para renderizar o caractere recuperado |
FieldSymbol.DontAffectsLineSpacing | Controla se o caractere inserido afeta o espaçamento entre linhas do parágrafo |