Поля уравнений и формул

Поля уравнений и формул

Поля уравнений и формул

Это руководство показывает, как работать с FieldAdvance and FieldSymbol классами полей в Aspose.Words FOSS для .NET, которые реализуют поля Word 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Управляет тем, влияет ли вставленный символ на межстрочный интервал абзаца

См. также:

 Русский