Поля рівнянь і формул
Поля рівнянь та формул
Цей посібник показує, як працювати з FieldAdvance and FieldSymbol класами полів у Aspose.Words FOSS для .NET, які реалізують Word’s ADVANCE and SYMBOL поля. Обидва класи успадковуються від Field і реалізують IFieldCodeTokenInfoProvider; для базової Field моделі об’єктів, дивіться Робота з полями посібник.
Переміщення тексту за допомогою FieldAdvance
FieldAdvance реалізує поле ADVANCE, яке зсуває наступний за ним текст без вставки видимих символів. DownOffset, UpOffset, LeftOffset і RightOffset (усі string) переміщують наступний текст на певну кількість пунктів у цьому напрямку. HorizontalPosition і VerticalPosition (також string) переміщують наступний текст у абсолютну позицію, виміряну від лівого краю колонки, рамки або текстового блоку, та від верхнього краю сторінки відповідно.
Вставка спеціальних символів за допомогою FieldSymbol
FieldSymbol реалізує поле SYMBOL, яке вставляє один символ за кодовою точкою. CharacterCode (string) надає кодову точку символу в десятковому або шістнадцятковому форматі. IsAnsi, IsUnicode і IsShiftJis (усі bool) визначають, як інтерпретується CharacterCode. FontName і FontSize (string) задають шрифт, який використовується для відображення отриманого символу, а DontAffectsLineSpacing (bool) контролює, чи впливає вставлений символ на міжрядковий інтервал абзацу.
Поради та найкращі практики
- Встановіть лише один з
IsAnsi,IsUnicodeабоIsShiftJisнаFieldSymbol, щоб уникнути неоднозначного тлумаченняCharacterCode. - Властивості зсуву
FieldAdvanceєstring, а не числовими типами — передавайте значення точок як рядки під час встановленняDownOffset,UpOffset,LeftOffset,RightOffset,HorizontalPositionабоVerticalPosition. - Встановіть
FieldSymbol.FontNameу шрифт, який дійсно містить гліф заCharacterCode, інакше відображений символ може перейти до заповнювача відсутнього гліфа. - Викличте
Update()після зміни будь-якої властивості вFieldAdvanceабоFieldSymbol, щобResult/DisplayResultполя відображали зміну. - Використовуйте
DontAffectsLineSpacing, коли вставляєте високий або незвичний символ, який не повинен збільшувати висоту оточуючого рядка.
Поширені проблеми
| Проблема | Причина | Виправлення |
|---|---|---|
поле ADVANCE не переміщує текст, як очікувалося | Було встановлено неправильну властивість зсуву або значення залишилося за замовчуванням | Встановіть конкретну властивість DownOffset / UpOffset / LeftOffset / RightOffset (відносну) або HorizontalPosition / VerticalPosition (абсолютну), яка відповідає запланованому переміщенню |
поле SYMBOL відображає неправильний символ | CharacterCode був інтерпретований з неправильним кодуванням | Встановіть рівно один із IsAnsi, IsUnicode або IsShiftJis, щоб відповідати тому, як був створений CharacterCode |
| Символ відображається як коробка з відсутнім гліфом | FontName не містить гліфа для CharacterCode | Встановіть FontName у шрифт, який, як відомо, містить цей символ. |
FAQ
Що робить поле ADVANCE?
Він переміщує текст, що йде після нього, або за допомогою відносного зсуву (DownOffset, UpOffset, LeftOffset, RightOffset), або абсолютної позиції (HorizontalPosition, VerticalPosition), не вставляючи видимих символів.
Як вставити конкретний символ Unicode за допомогою FieldSymbol?
Встановіть CharacterCode у кодову точку символу, встановіть IsUnicode = true, і за бажанням встановіть FontName / FontSize для відображення гліфа.
Чи є значення зсуву FieldAdvance числами чи рядками?
Вони є властивостями string (DownOffset, UpOffset, LeftOffset, RightOffset, HorizontalPosition, VerticalPosition), що відповідають формату аргументу необробленого коду поля.
Чи впливає вставка символу SYMBOL на міжрядковий інтервал?
Встановіть DontAffectsLineSpacing у true, щоб запобігти впливу вставленого символу на висоту рядка абзацу.
API Reference Підсумок
| Клас/Метод | Опис |
|---|---|
FieldAdvance | Реалізує поле ADVANCE; переміщує наступний текст без вставки символів |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | Відносні зміщення точок, застосовані до наступного тексту |
FieldAdvance.HorizontalPosition / VerticalPosition | Абсолютна позиція точки застосована до наступного тексту |
FieldSymbol | Реалізує поле SYMBOL; вставляє символ за кодовою точкою |
FieldSymbol.CharacterCode | Кодовою точка символу, у десятковому або шістнадцятковому форматі |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | Вибирає, як CharacterCode інтерпретується |
FieldSymbol.FontName / FontSize | Шрифт, який використовується для відображення отриманого символу |
FieldSymbol.DontAffectsLineSpacing | Керує тим, чи впливає вставлений символ на міжрядковий інтервал абзацу |