Fält för ekvationer och formler
Fält för ekvationer och formler
Den här guiden visar hur man arbetar med FieldAdvance and FieldSymbol fältklasser i Aspose.Words FOSS för .NET, som implementerar Word’s ADVANCE and SYMBOL fält. Båda klasserna ärver från Field och implementerar IFieldCodeTokenInfoProvider; för den grundläggande Field objektmodellen i sig, se den Arbeta med fält guiden.
Omplacering av text med FieldAdvance
FieldAdvance implementerar ADVANCE-fältet, som förskjuter den efterföljande texten utan att infoga synliga tecken. DownOffset, UpOffset, LeftOffset och RightOffset (alla string) flyttar den efterföljande texten ett antal punkter i den riktningen. HorizontalPosition och VerticalPosition (även string) placerar den efterföljande texten på en absolut position mätt från vänsterkanten av kolumnen, ramen eller textrutan och från toppen av sidan, respektive.
Infoga specialtecken med FieldSymbol
FieldSymbol implementerar SYMBOL-fältet, som infogar ett enda tecken via kodpunkt. CharacterCode (string) anger tecknets kodpunkt i decimal eller hexadecimal. IsAnsi, IsUnicode och IsShiftJis (alla bool) väljer hur CharacterCode tolkas. FontName och FontSize (string) anger det teckensnitt som ska användas för att rendera det hämtade tecknet, och DontAffectsLineSpacing (bool) styr om det infogade tecknet påverkar styckets radavstånd.
Tips och bästa praxis
- Ställ in endast en av
IsAnsi,IsUnicodeellerIsShiftJispå enFieldSymbolför att undvika en tvetydig tolkning avCharacterCode. FieldAdvances offset-egenskaper ärstring, inte numeriska typer — skicka punktvärden som strängar när du sätterDownOffset,UpOffset,LeftOffset,RightOffset,HorizontalPositionellerVerticalPosition.- Ställ in
FieldSymbol.FontNametill ett teckensnitt som faktiskt innehåller glyfen påCharacterCode, annars kan det renderade tecknet falla tillbaka till en platshållare för saknad glyf. - Anropa
Update()efter att du ändrat någon egenskap påFieldAdvanceellerFieldSymbolså att fältetsResult/DisplayResultåterspeglar förändringen. - Använd
DontAffectsLineSpacingnär du infogar ett högt eller ovanligt symboltecken som inte bör sträcka den omgivande radens höjd.
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
ADVANCE-fältet flyttar inte texten som förväntat | Fel offset-egenskap sattes, eller så lämnades ett värde på standard | Ställ in den specifika DownOffset / UpOffset / LeftOffset / RightOffset (relativ) eller HorizontalPosition / VerticalPosition (absolut) egenskapen som matchar den avsedda förflyttningen |
SYMBOL-fältet visar fel tecken | CharacterCode tolkades med fel kodning | Ställ in exakt en av IsAnsi, IsUnicode eller IsShiftJis så att den matchar hur CharacterCode skapades |
| Symboltecken renderas som en ruta för saknad glyf | FontName innehåller ingen glyf för CharacterCode | Ställ in FontName till ett teckensnitt som är känt för att inkludera det tecknet |
FAQ
Vad gör fältet ADVANCE?
Den ompositionerar texten som följer den, antingen med ett relativt avstånd (DownOffset, UpOffset, LeftOffset, RightOffset) eller en absolut position (HorizontalPosition, VerticalPosition), utan att infoga synliga tecken.
Hur infogar jag ett specifikt Unicode-tecken med FieldSymbol?
Ställ in CharacterCode till tecknets kodpunkt, ställ in IsUnicode = true, och eventuellt ställ in FontName / FontSize för glyfens rendering.
Är FieldAdvance s förskjutningsvärden tal eller strängar?
De är string egenskaper (DownOffset, UpOffset, LeftOffset, RightOffset, HorizontalPosition, VerticalPosition), som matchar det råa fältkodargumentformatet.
Påverkar införandet av ett SYMBOL-tecken radavståndet?
Ställ in DontAffectsLineSpacing till true för att förhindra att det infogade tecknet påverkar styckets radhöjd.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
FieldAdvance | Implementerar fältet ADVANCE; ompositionerar följande text utan att infoga tecken |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | Relativa punktförskjutningar tillämpas på följande text |
FieldAdvance.HorizontalPosition / VerticalPosition | Absolut punktposition som tillämpas på följande text |
FieldSymbol | Implementerar SYMBOL-fältet; infogar ett tecken enligt kodpunkt |
FieldSymbol.CharacterCode | Tecknets kodpunkt, i decimal eller hexadecimal |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | Väljer hur CharacterCode tolkas |
FieldSymbol.FontName / FontSize | Teckensnitt som används för att rendera det hämtade tecknet |
FieldSymbol.DontAffectsLineSpacing | Styr om det infogade tecknet påverkar styckets radavstånd |