Champs d'équations et de formules
Champs d’équations et de formules
Ce guide montre comment travailler avec le FieldAdvance and FieldSymbol les classes de champs dans Aspose.Words FOSS pour .NET, qui implémentent les champs de Word ADVANCE and SYMBOL champs. Les deux classes dérivent de Field et implémentent IFieldCodeTokenInfoProvider; pour le Field modèle d’objet lui-même, voir le Travailler avec les champs guide.
Repositionnement du texte avec FieldAdvance
FieldAdvance implémente le champ ADVANCE, qui décale le texte qui le suit sans insérer de caractères visibles. DownOffset, UpOffset, LeftOffset et RightOffset (tous string) déplacent le texte suivant d’un certain nombre de points dans cette direction. HorizontalPosition et VerticalPosition (également string) déplacent le texte suivant à une position absolue mesurée depuis le bord gauche de la colonne, du cadre ou de la zone de texte, et le bord supérieur de la page, respectivement.
Insertion de caractères spéciaux avec FieldSymbol
FieldSymbol implémente le champ SYMBOL, qui insère un seul caractère par point de code. CharacterCode (string) fournit le point de code du caractère en décimal ou en hexadécimal. IsAnsi, IsUnicode et IsShiftJis (tous bool) sélectionnent la manière dont CharacterCode est interprété. FontName et FontSize (string) définissent la police utilisée pour rendre le caractère récupéré, et DontAffectsLineSpacing (bool) contrôle si le caractère inséré affecte l’interlignage du paragraphe.
Conseils et meilleures pratiques
- Définissez uniquement l’un des
IsAnsi,IsUnicodeouIsShiftJissur unFieldSymbolafin d’éviter une interprétation ambiguë deCharacterCode. - Les propriétés de décalage de
FieldAdvancesontstring, pas des types numériques — transmettez les valeurs de points sous forme de chaînes lors de la définition deDownOffset,UpOffset,LeftOffset,RightOffset,HorizontalPositionouVerticalPosition. - Définissez
FieldSymbol.FontNamesur une police qui contient réellement le glyphe àCharacterCode, sinon le caractère rendu peut revenir à un espace réservé de glyphe manquant. - Appelez
Update()après avoir modifié une propriété surFieldAdvanceouFieldSymbolafin que leResult/DisplayResultdu champ reflète la modification. - Utilisez
DontAffectsLineSpacinglors de l’insertion d’un caractère symbole haut ou inhabituel qui ne doit pas étirer la hauteur de la ligne environnante.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
Le champ ADVANCE ne déplace pas le texte comme prévu | La mauvaise propriété de décalage a été définie, ou une valeur est restée à sa valeur par défaut | Définissez la propriété spécifique DownOffset / UpOffset / LeftOffset / RightOffset (relative) ou HorizontalPosition / VerticalPosition (absolue) qui correspond au déplacement souhaité |
Le champ SYMBOL affiche le mauvais caractère | CharacterCode a été interprété avec le mauvais encodage | Définissez exactement l’un des IsAnsi, IsUnicode ou IsShiftJis pour correspondre à la façon dont CharacterCode a été rédigé |
| Le caractère symbole est rendu comme une boîte de glyphe manquant | FontName ne contient pas de glyphe pour CharacterCode | Définissez FontName sur une police connue pour inclure ce caractère |
FAQ
À quoi sert le champ ADVANCE?
Il repositionne le texte qui le suit, soit par un décalage relatif (DownOffset, UpOffset, LeftOffset, RightOffset) ou une position absolue (HorizontalPosition, VerticalPosition), sans insérer de caractères visibles.
Comment insérer un caractère Unicode spécifique avec FieldSymbol?
Définissez CharacterCode au point de code du caractère, définissez IsUnicode = true, et éventuellement définissez FontName / FontSize pour le rendu du glyphe.
Les valeurs de décalage de FieldAdvance sont-elles des nombres ou des chaînes?
Ce sont des propriétés de string (DownOffset, UpOffset, LeftOffset, RightOffset, HorizontalPosition, VerticalPosition), correspondant au format d’argument brut du champ de code.
L’insertion d’un caractère SYMBOL affecte-t-elle l’espacement des lignes?
Définissez DontAffectsLineSpacing sur true pour empêcher le caractère inséré d’affecter la hauteur de ligne du paragraphe.
API Reference Résumé
| Classe/Méthode | Description |
|---|---|
FieldAdvance | Implémente le champ ADVANCE ; repositionne le texte suivant sans insérer de caractères |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | Décalages de points relatifs appliqués au texte suivant |
FieldAdvance.HorizontalPosition / VerticalPosition | Position de point absolue appliquée au texte suivant |
FieldSymbol | Implémente le champ SYMBOL ; insère un caractère par point de code |
FieldSymbol.CharacterCode | Le point de code du caractère, en décimal ou en hexadécimal |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | Sélectionne comment CharacterCode est interprété |
FieldSymbol.FontName / FontSize | Police utilisée pour rendre le caractère récupéré |
FieldSymbol.DontAffectsLineSpacing | Contrôle si le caractère inséré affecte l’interligne du paragraphe |