Pola równań i formuł
Pola równań i formuł
Ten przewodnik pokazuje, jak pracować z FieldAdvance and FieldSymbol klasami pól w Aspose.Words FOSS dla .NET, które implementują Word’s ADVANCE and SYMBOL pól. Obie klasy dziedziczą po Field i implementują IFieldCodeTokenInfoProvider; dla podstawowego Field modelu obiektowego, zobacz Praca z polami przewodnik.
Przemieszczanie tekstu za pomocą FieldAdvance
FieldAdvance implementuje pole ADVANCE, które przesuwa następujący po nim tekst bez wstawiania widocznych znaków. DownOffset, UpOffset, LeftOffset i RightOffset (wszystkie string) przesuwają kolejny tekst o określoną liczbę punktów w danym kierunku. HorizontalPosition i VerticalPosition (również string) przesuwają kolejny tekst do pozycji absolutnej mierzonej od lewej krawędzi kolumny, ramki lub pola tekstowego oraz od górnej krawędzi strony, odpowiednio.
Wstawianie znaków specjalnych za pomocą FieldSymbol
FieldSymbol implementuje pole SYMBOL, które wstawia pojedynczy znak według punktu kodowego. CharacterCode (string) podaje punkt kodowy znaku w systemie dziesiętnym lub szesnastkowym. IsAnsi, IsUnicode i IsShiftJis (wszystkie bool) wybierają, jak CharacterCode jest interpretowany. FontName i FontSize (string) określają czcionkę używaną do renderowania pobranego znaku, a DontAffectsLineSpacing (bool) kontroluje, czy wstawiony znak wpływa na interlinię akapitu.
Wskazówki i najlepsze praktyki
- Ustaw tylko jeden z
IsAnsi,IsUnicodelubIsShiftJisnaFieldSymbol, aby uniknąć niejednoznacznej interpretacjiCharacterCode. - Właściwości offsetu
FieldAdvancetostring, a nie typy numeryczne — przekaż wartości punktowe jako ciągi znaków przy ustawianiuDownOffset,UpOffset,LeftOffset,RightOffset,HorizontalPositionlubVerticalPosition. - Ustaw
FieldSymbol.FontNamena czcionkę, która rzeczywiście zawiera glif wCharacterCode, w przeciwnym razie wyrenderowany znak może zostać zastąpiony symbolem zastępczym brakującego glifu. - Wywołaj
Update()po zmianie dowolnej właściwości wFieldAdvancelubFieldSymbol, abyResult/DisplayResultpola odzwierciedlały zmianę. - Użyj
DontAffectsLineSpacingprzy wstawianiu wysokiego lub nietypowego znaku symbolicznego, który nie powinien rozciągać wysokości otaczającej linii.
Typowe problemy
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
ADVANCE pole nie przesuwa tekstu zgodnie z oczekiwaniami | Ustawiono nieprawidłową właściwość offsetu lub wartość pozostała w ustawieniu domyślnym | Ustaw konkretne właściwości DownOffset / UpOffset / LeftOffset / RightOffset (względne) lub HorizontalPosition / VerticalPosition (bezwzględne), które odpowiadają zamierzonemu przemieszczeniu |
SYMBOL pole wyświetla niewłaściwy znak | CharacterCode został zinterpretowany w niewłaściwym kodowaniu | Ustaw dokładnie jedną z IsAnsi, IsUnicode lub IsShiftJis, aby odpowiadała temu, jak CharacterCode został napisany |
| Znak symbolu wyświetla się jako pole z brakującym glifem | FontName nie zawiera glifu dla CharacterCode | Ustaw FontName na czcionkę, o której wiadomo, że zawiera ten znak |
FAQ
Do czego służy pole ADVANCE?
Przemieszcza tekst, który po nim następuje, albo o offset względny (DownOffset, UpOffset, LeftOffset, RightOffset), albo o pozycję bezwzględną (HorizontalPosition, VerticalPosition), nie wstawiając widocznych znaków.
Jak wstawić konkretny znak Unicode za pomocą FieldSymbol?
Ustaw CharacterCode na punkt kodowy znaku, ustaw IsUnicode = true, a opcjonalnie ustaw FontName / FontSize dla renderowania glifu.
Czy wartości offsetu FieldAdvance są liczbami czy ciągami znaków?
Są to właściwości string (DownOffset, UpOffset, LeftOffset, RightOffset, HorizontalPosition, VerticalPosition), odpowiadające surowemu formatowi argumentu field-code.
Czy wstawienie znaku SYMBOL wpływa na odstępy między wierszami?
Ustaw DontAffectsLineSpacing na true, aby zapobiec wpływowi wstawionego znaku na wysokość linii akapitu.
API Reference Podsumowanie
| Klasa/Metoda | Opis |
|---|---|
FieldAdvance | Implementuje pole ADVANCE; przemieszcza kolejny tekst bez wstawiania znaków |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | Względne przesunięcia punktowe zastosowane do następującego tekstu |
FieldAdvance.HorizontalPosition / VerticalPosition | Bezwzględna pozycja punktu zastosowana do poniższego tekstu |
FieldSymbol | Implementuje pole SYMBOL; wstawia znak według punktu kodowego |
FieldSymbol.CharacterCode | Punkt kodowy znaku, w zapisie dziesiętnym lub szesnastkowym |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | Wybiera, jak CharacterCode jest interpretowane |
FieldSymbol.FontName / FontSize | Czcionka używana do renderowania pobranego znaku |
FieldSymbol.DontAffectsLineSpacing | Kontroluje, czy wstawiony znak wpływa na odstępy między wierszami akapitu |