Campos de Ecuaciones y Fórmulas
Campos de ecuaciones y fórmulas
Esta guía muestra cómo trabajar con las FieldAdvance and FieldSymbol clases de campos en Aspose.Words FOSS para .NET, que implementan los campos de Word ADVANCE and SYMBOL . Ambas clases derivan de Field e implementan IFieldCodeTokenInfoProvider; para la base Field modelo de objetos en sí, consulte el Trabajo con Campos guía.
Reposicionamiento de texto con FieldAdvance
FieldAdvance implementa el campo ADVANCE, que desplaza el texto que le sigue sin insertar caracteres visibles. DownOffset, UpOffset, LeftOffset y RightOffset (todos string) mueven el texto siguiente una cantidad de puntos en esa dirección. HorizontalPosition y VerticalPosition (también string) mueven el texto siguiente a una posición absoluta medida desde el borde izquierdo de la columna, marco o cuadro de texto, y desde el borde superior de la página, respectivamente.
Insertar caracteres especiales con FieldSymbol
FieldSymbol implementa el campo SYMBOL, que inserta un único carácter mediante su punto de código. CharacterCode (string) proporciona el punto de código del carácter en decimal u hexadecimal. IsAnsi, IsUnicode y IsShiftJis (todos bool) seleccionan cómo se interpreta CharacterCode. FontName y FontSize (string) establecen la fuente utilizada para representar el carácter recuperado, y DontAffectsLineSpacing (bool) controla si el carácter insertado afecta al interlineado del párrafo.
Consejos y mejores prácticas
- Establezca solo uno de
IsAnsi,IsUnicodeoIsShiftJisen unFieldSymbolpara evitar una interpretación ambigua deCharacterCode. - Las propiedades de desplazamiento de
FieldAdvancesonstring, no tipos numéricos — pase los valores de punto como cadenas al establecerDownOffset,UpOffset,LeftOffset,RightOffset,HorizontalPositionoVerticalPosition. - Establezca
FieldSymbol.FontNamea una fuente que realmente contenga el glifo enCharacterCode, o el carácter renderizado podría recurrir a un marcador de posición de glifo faltante. - Llame a
Update()después de cambiar cualquier propiedad enFieldAdvanceoFieldSymbolpara que elResult/DisplayResultdel campo refleje el cambio. - Utilice
DontAffectsLineSpacingal insertar un carácter de símbolo alto o inusual que no debe estirar la altura de la línea circundante.
Problemas comunes
| Problema | Causa | Corrección |
|---|---|---|
El campo ADVANCE no mueve el texto como se esperaba | Se estableció la propiedad de desplazamiento incorrecta, o se dejó un valor en su valor predeterminado | Establezca la propiedad específica DownOffset / UpOffset / LeftOffset / RightOffset (relativa) o HorizontalPosition / VerticalPosition (absoluta) que coincida con el movimiento previsto |
El campo SYMBOL muestra el carácter incorrecto | CharacterCode se interpretó con la codificación incorrecta | Establezca exactamente uno de IsAnsi, IsUnicode o IsShiftJis para que coincida con la forma en que CharacterCode fue creado |
| El carácter de símbolo se muestra como una caja de glifo faltante | FontName no contiene un glifo para CharacterCode | Establezca FontName a una fuente conocida por incluir ese carácter |
FAQ
¿Qué hace el campo ADVANCE?
Reposiciona el texto que le sigue, ya sea mediante un desplazamiento relativo (DownOffset, UpOffset, LeftOffset, RightOffset) o una posición absoluta (HorizontalPosition, VerticalPosition), sin insertar caracteres visibles.
¿Cómo inserto un carácter Unicode específico con FieldSymbol?
Establezca CharacterCode al punto de código del carácter, establezca IsUnicode = true, y opcionalmente establezca FontName / FontSize para la representación del glifo.
¿Los valores de desplazamiento de FieldAdvance son números o cadenas?
Son propiedades de string (DownOffset, UpOffset, LeftOffset, RightOffset, HorizontalPosition, VerticalPosition), que coinciden con el formato de argumento del código de campo sin procesar.
¿La inserción de un carácter SÍMBOLO afecta al interlineado?
Establezca DontAffectsLineSpacing en true para evitar que el carácter insertado afecte la altura de línea del párrafo.
API Reference Resumen
| Clase/Método | Descripción |
|---|---|
FieldAdvance | Implementa el campo ADVANCE; reposiciona el texto siguiente sin insertar caracteres |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | Desplazamientos de punto relativos aplicados al texto siguiente |
FieldAdvance.HorizontalPosition / VerticalPosition | Posición absoluta del punto aplicada al texto siguiente |
FieldSymbol | Implementa el campo SYMBOL; inserta un carácter por punto de código |
FieldSymbol.CharacterCode | El punto de código del carácter, en decimal o hexadecimal |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | Selecciona cómo se interpreta CharacterCode |
FieldSymbol.FontName / FontSize | Fuente utilizada para representar el carácter recuperado |
FieldSymbol.DontAffectsLineSpacing | Controla si el carácter insertado afecta el interlineado del párrafo |