Vergelijkingen en Formules Velden
Vergelijkingen en Formules Velden
Deze gids laat zien hoe je werkt met de FieldAdvance and FieldSymbol veldklassen in Aspose.Words FOSS voor .NET, die de Word’s ADVANCE and SYMBOL velden. Beide klassen zijn afgeleid van Field en implementeren IFieldCodeTokenInfoProvider; voor de basis Field objectmodel zelf, zie de Werken met Velden gids.
Tekst herpositioneren met FieldAdvance
FieldAdvance implementeert het ADVANCE veld, dat de tekst die erop volgt verschuift zonder zichtbare tekens in te voegen. DownOffset, UpOffset, LeftOffset en RightOffset (allemaal string) verplaatsen de volgende tekst met een aantal punten in die richting. HorizontalPosition en VerticalPosition (ook string) verplaatsen de volgende tekst naar een absolute positie gemeten vanaf de linkerrand van de kolom, het kader of het tekstvak, en de bovenzijde van de pagina, respectievelijk.
Speciale tekens invoegen met FieldSymbol
FieldSymbol implementeert het SYMBOL veld, dat een enkel teken invoegt op basis van een codepunt. CharacterCode (string) levert het codepunt van het teken in decimaal of hexadecimaal. IsAnsi, IsUnicode en IsShiftJis (allemaal bool) bepalen hoe CharacterCode wordt geïnterpreteerd. FontName en FontSize (string) stellen het lettertype in dat wordt gebruikt om het opgehaalde teken weer te geven, en DontAffectsLineSpacing (bool) bepaalt of het ingevoegde teken de regelafstand van de alinea beïnvloedt.
Tips en best practices
- Stelt slechts één van
IsAnsi,IsUnicodeofIsShiftJisin op eenFieldSymbolom een dubbelzinnige interpretatie vanCharacterCodete voorkomen. - De offset-eigenschappen van
FieldAdvancezijnstring, geen numerieke types — geef puntwaarden als strings door bij het instellen vanDownOffset,UpOffset,LeftOffset,RightOffset,HorizontalPositionofVerticalPosition. - Stel
FieldSymbol.FontNamein op een lettertype dat daadwerkelijk het glyf opCharacterCodebevat, anders kan het gerenderde teken terugvallen op een ontbrekende-glyf placeholder. - Roep
Update()aan na het wijzigen van een eigenschap opFieldAdvanceofFieldSymbolzodat deResult/DisplayResultvan het veld de wijziging weerspiegelt. - Gebruik
DontAffectsLineSpacingbij het invoegen van een hoog of ongewoon symboolteken dat de hoogte van de omringende regel niet mag vergroten.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
ADVANCE veld verplaatst tekst niet zoals verwacht | De verkeerde offset-eigenschap was ingesteld, of een waarde bleef op de standaard staan | Stel de specifieke DownOffset / UpOffset / LeftOffset / RightOffset (relatief) of HorizontalPosition / VerticalPosition (absoluut) eigenschap in die overeenkomt met de beoogde verplaatsing |
SYMBOL veld toont het verkeerde teken | CharacterCode werd geïnterpreteerd onder de verkeerde codering | Stel precies één van IsAnsi, IsUnicode of IsShiftJis in zodat deze overeenkomt met hoe CharacterCode is geschreven |
| Symboolkarakter wordt weergegeven als een ontbrekende-glyf-vak | FontName bevat geen glyf voor CharacterCode | Stel FontName in op een lettertype waarvan bekend is dat het dat teken bevat. |
FAQ
Wat doet het ADVANCE-veld?
Het verplaatst de tekst die erop volgt, ofwel met een relatieve offset (DownOffset, UpOffset, LeftOffset, RightOffset) of een absolute positie (HorizontalPosition, VerticalPosition), zonder zichtbare tekens in te voegen.
Hoe kan ik een specifiek Unicode-teken invoegen met FieldSymbol?
Stel CharacterCode in op het codepunt van het teken, stel IsUnicode = true in, en stel eventueel FontName / FontSize in voor de weergave van het glyph.
Zijn de offset-waarden van FieldAdvance getallen of strings?
Het zijn string-eigenschappen (DownOffset, UpOffset, LeftOffset, RightOffset, HorizontalPosition, VerticalPosition), die overeenkomen met het ruwe veld-code-argumentformaat.
Heeft het invoegen van een SYMBOL-teken invloed op de regelafstand?
Stel DontAffectsLineSpacing in op true om te voorkomen dat het ingevoegde teken de regelhoogte van de alinea beïnvloedt.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
FieldAdvance | Implementeert het ADVANCE-veld; verplaatst de volgende tekst zonder tekens in te voegen |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | Relatieve puntverschuivingen toegepast op de volgende tekst |
FieldAdvance.HorizontalPosition / VerticalPosition | Absolute puntpositie toegepast op de volgende tekst |
FieldSymbol | Implementeert het SYMBOL-veld; voegt een teken in via codepunt |
FieldSymbol.CharacterCode | Het codepunt van het teken, in decimaal of hexadecimaal |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | Selecteert hoe CharacterCode wordt geïnterpreteerd |
FieldSymbol.FontName / FontSize | Lettertype dat wordt gebruikt om het opgehaalde teken weer te geven |
FieldSymbol.DontAffectsLineSpacing | Bepaalt of het ingevoegde teken de regelafstand van de alinea beïnvloedt |