Gleichungen und Formelfelder
Gleichungen und Formelfelder
Dieser Leitfaden zeigt, wie man mit dem FieldAdvance and FieldSymbol Feldklassen in Aspose.Words FOSS für .NET, die Word’s implementieren ADVANCE and SYMBOL Felder. Beide Klassen erben von Field und implementieren IFieldCodeTokenInfoProvider; für das Basis Field Objektmodell selbst, siehe die Arbeiten mit Feldern Leitfaden.
Text neu positionieren mit FieldAdvance
FieldAdvance implementiert das ADVANCE-Feld, das den nachfolgenden Text verschiebt, ohne sichtbare Zeichen einzufügen. DownOffset, UpOffset, LeftOffset und RightOffset (alle string) verschieben den nachfolgenden Text um eine Anzahl von Punkten in diese Richtung. HorizontalPosition und VerticalPosition (auch string) positionieren den nachfolgenden Text an einer absoluten Position, gemessen vom linken Rand der Spalte, des Rahmens oder der Textbox bzw. vom oberen Rand der Seite.
Einfügen von Sonderzeichen mit FieldSymbol
FieldSymbol implementiert das SYMBOL-Feld, das ein einzelnes Zeichen anhand seines Codepoints einfügt. CharacterCode (string) liefert den Codepoint des Zeichens in dezimaler oder hexadezimaler Form. IsAnsi, IsUnicode und IsShiftJis (alle bool) bestimmen, wie CharacterCode interpretiert wird. FontName und FontSize (string) setzen die Schriftart, die zum Rendern des abgerufenen Zeichens verwendet wird, und DontAffectsLineSpacing (bool) steuert, ob das eingefügte Zeichen den Zeilenabstand des Absatzes beeinflusst.
Tipps und bewährte Verfahren
- Setzen Sie nur eines von
IsAnsi,IsUnicodeoderIsShiftJisauf einemFieldSymbol, um eine mehrdeutige Interpretation vonCharacterCodezu vermeiden. - Die Offset-Eigenschaften von
FieldAdvancesindstring, keine numerischen Typen — übergeben Sie Punktwerte als Zeichenketten, wenn SieDownOffset,UpOffset,LeftOffset,RightOffset,HorizontalPositionoderVerticalPositionfestlegen. - Setzen Sie
FieldSymbol.FontNameauf eine Schriftart, die das Glyph beiCharacterCodetatsächlich enthält, sonst kann das gerenderte Zeichen auf einen fehlenden-Glyph-Platzhalter zurückfallen. - Rufen Sie
Update()auf, nachdem Sie eine Eigenschaft vonFieldAdvanceoderFieldSymbolgeändert haben, damit dieResult/DisplayResultdes Feldes die Änderung widerspiegelt. - Verwenden Sie
DontAffectsLineSpacing, wenn Sie ein hohes oder ungewöhnliches Symbolzeichen einfügen, das die Höhe der umgebenden Zeile nicht strecken sollte.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
ADVANCE Feld verschiebt den Text nicht wie erwartet | Die falsche Offset-Eigenschaft wurde gesetzt, oder ein Wert blieb auf dem Standardwert | Setzen Sie die spezifische DownOffset / UpOffset / LeftOffset / RightOffset (relativ) oder HorizontalPosition / VerticalPosition (absolut) Eigenschaft, die der beabsichtigten Bewegung entspricht |
SYMBOL Feld zeigt das falsche Zeichen an | CharacterCode wurde mit der falschen Kodierung interpretiert | Legen Sie genau eines von IsAnsi, IsUnicode oder IsShiftJis so fest, dass es dem entspricht, wie CharacterCode verfasst wurde |
| Das Symbolzeichen wird als fehlende Glyph-Box dargestellt | FontName enthält kein Glyph für CharacterCode | Setze FontName auf eine Schriftart, die dieses Zeichen enthält. |
FAQ
Was bewirkt das Feld ADVANCE?
Es positioniert den nachfolgenden Text neu, entweder durch einen relativen Versatz (DownOffset, UpOffset, LeftOffset, RightOffset) oder eine absolute Position (HorizontalPosition, VerticalPosition), ohne sichtbare Zeichen einzufügen.
Wie füge ich ein bestimmtes Unicode-Zeichen mit FieldSymbol ein?
Setze CharacterCode auf den Codepunkt des Zeichens, setze IsUnicode = true und optional FontName / FontSize für die Darstellung des Glyphen.
Sind die Versatzwerte von FieldAdvance Zahlen oder Zeichenketten?
Es handelt sich um string-Eigenschaften (DownOffset, UpOffset, LeftOffset, RightOffset, HorizontalPosition, VerticalPosition), die dem Rohfeld-Code-Argumentformat entsprechen.
Beeinflusst das Einfügen eines SYMBOL-Zeichens den Zeilenabstand?
Setze DontAffectsLineSpacing auf true, um zu verhindern, dass das eingefügte Zeichen die Zeilenhöhe des Absatzes beeinflusst.
API Reference Zusammenfassung
| Klasse/Methode | Beschreibung |
|---|---|
FieldAdvance | Implementiert das Feld ADVANCE; positioniert den nachfolgenden Text neu, ohne Zeichen einzufügen |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | Relative Punktversätze, die auf den folgenden Text angewendet werden |
FieldAdvance.HorizontalPosition / VerticalPosition | Absolute Punktposition, die auf den folgenden Text angewendet wird |
FieldSymbol | Implementiert das Feld SYMBOL; fügt ein Zeichen anhand des Codepunkts ein |
FieldSymbol.CharacterCode | Der Codepunkt des Zeichens, dezimal oder hexadezimal |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | Wählt aus, wie CharacterCode interpretiert wird |
FieldSymbol.FontName / FontSize | Schriftart, die zum Rendern des abgerufenen Zeichens verwendet wird |
FieldSymbol.DontAffectsLineSpacing | Steuert, ob das eingefügte Zeichen den Zeilenabstand des Absatzes beeinflusst |