Pole rovnic a vzorců
Pole rovnic a vzorců
Tento průvodce ukazuje, jak pracovat s FieldAdvance and FieldSymbol třídami polí v Aspose.Words FOSS pro .NET, které implementují Word ADVANCE and SYMBOL pole. Obě třídy dědí z Field a implementují IFieldCodeTokenInfoProvider; pro základní Field objektový model samotný, viz Práce s poli průvodce.
Přemístění textu pomocí FieldAdvance
FieldAdvance implementuje pole ADVANCE, které posouvá následující text, aniž by vkládalo viditelné znaky. DownOffset, UpOffset, LeftOffset a RightOffset (všechny string) posunou následující text o určitý počet bodů v daném směru. HorizontalPosition a VerticalPosition (také string) přesunou následující text na absolutní pozici měřenou od levého okraje sloupce, rámce nebo textového pole a od horního okraje stránky, respektive.
Vkládání speciálních znaků pomocí FieldSymbol
FieldSymbol implementuje pole SYMBOL, které vkládá jeden znak podle kódového bodu. CharacterCode (string) poskytuje kódový bod znaku v desítkové nebo šestnáctkové soustavě. IsAnsi, IsUnicode a IsShiftJis (všechny bool) určují, jak je CharacterCode interpretováno. FontName a FontSize (string) nastavují písmo použité k vykreslení získaného znaku a DontAffectsLineSpacing (bool) řídí, zda vložený znak ovlivňuje řádkování odstavce.
Tipy a osvědčené postupy
- Nastavte pouze jeden z
IsAnsi,IsUnicodeneboIsShiftJisnaFieldSymbol, aby se předešlo nejednoznačné interpretaciCharacterCode. - Offsetové vlastnosti
FieldAdvancejsoustring, nikoli číselné typy — předávejte hodnoty bodů jako řetězce při nastavováníDownOffset,UpOffset,LeftOffset,RightOffset,HorizontalPositionneboVerticalPosition. - Nastavte
FieldSymbol.FontNamena písmo, které skutečně obsahuje glyfu naCharacterCode, jinak se vykreslený znak může vrátit k placeholderu chybějící glyfy. - Zavolejte
Update()po změně libovolné vlastnosti naFieldAdvanceneboFieldSymbol, abyResult/DisplayResultpole odrážely změnu. - Použijte
DontAffectsLineSpacingpři vkládání vysokého nebo neobvyklého symbolu, který by neměl natahovat výšku okolní řádky.
Běžné problémy
| Problém | Příčina | Oprava |
|---|---|---|
Pole ADVANCE nepřesouvá text podle očekávání | Byla nastavena nesprávná vlastnost offset nebo hodnota zůstala na výchozí hodnotě | Nastavte konkrétní vlastnost DownOffset / UpOffset / LeftOffset / RightOffset (relativní) nebo HorizontalPosition / VerticalPosition (absolutní), která odpovídá zamýšlenému posunu |
Pole SYMBOL zobrazuje špatný znak | CharacterCode byl interpretován v nesprávném kódování | Nastavte přesně jeden z IsAnsi, IsUnicode nebo IsShiftJis, aby odpovídal tomu, jak byl CharacterCode vytvořen |
| Znak symbolu se vykresluje jako rámeček chybějícího glyfu | FontName neobsahuje glyf pro CharacterCode | Nastavte FontName na písmo, o kterém je známo, že obsahuje tento znak. |
FAQ
K čemu slouží pole ADVANCE?
Přesune text, který následuje, buď o relativní posun (DownOffset, UpOffset, LeftOffset, RightOffset) nebo o absolutní pozici (HorizontalPosition, VerticalPosition), aniž by vložil viditelné znaky.
Jak vložit konkrétní znak Unicode pomocí FieldSymbol?
Nastavte CharacterCode na kódový bod znaku, nastavte IsUnicode = true a volitelně nastavte FontName / FontSize pro vykreslení glyfu.
Jsou offsetové hodnoty FieldAdvance čísla nebo řetězce?
Jedná se o vlastnosti string (DownOffset, UpOffset, LeftOffset, RightOffset, HorizontalPosition, VerticalPosition), které odpovídají formátu argumentu surového pole-kódu.
Ovlivňuje vložení znaku SYMBOL řádkování?
Nastavte DontAffectsLineSpacing na true, aby vložený znak neovlivňoval výšku řádku odstavce.
API Reference Shrnutí
| Třída/Metoda | Popis: |
|---|---|
FieldAdvance | Implementuje pole ADVANCE; přemístí následující text bez vložení znaků |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | Relativní posuny bodů aplikované na následující text |
FieldAdvance.HorizontalPosition / VerticalPosition | Absolutní pozice bodu aplikovaná na následující text |
FieldSymbol | Implementuje pole SYMBOL; vloží znak podle kódového bodu |
FieldSymbol.CharacterCode | Kódový bod znaku, v desítkové nebo šestnáctkové soustavě |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | Určuje, jak je CharacterCode interpretováno |
FieldSymbol.FontName / FontSize | Písmo použité k vykreslení získaného znaku |
FieldSymbol.DontAffectsLineSpacing | Určuje, zda vložený znak ovlivňuje řádkování odstavce |