DrawShapedText
Текст
Описание
Данная страница описывает DrawShapedText в PDFlibPas в разделе «Текст». Имена API, параметры, имена классов, имена файлов и литеральные значения сохраняются в точном соответствии с библиотекой Delphi и точками входа DLL.
Ознакомьтесь с синтаксисом, параметрами и возвращаемыми значениями перед вызовом функции.
Синтаксис
Delphi
Function TPDFlib.DrawShapedText(XPos, YPos: Double; Const FontName: WideString; Size: Double; Const Text: WideString; Options: Integer): Integer;
Параметры
XPos/YPos задают позицию текста в единицах страницы. FontName указывает имя установленного начертания шрифта (например, Arial). Size — размер текста в пунктах. Text — строка, которую необходимо сформировать и вывести. Бит 0 параметра Options выбирает направление базового абзаца справа налево; устанавливайте его для арабского или иврита.
Возвращаемое значение
Возвращает 1 при успехе; 0, если движок формирования глифов недоступен, указанный шрифт не установлен или Text пуст.
Примечания
Текст проходит через системный движок формирования глифов перед отрисовкой, поэтому арабские буквы принимают правильные формы (начальная, срединная, конечная или изолированная позиция в слове), обязательные лигатуры, такие как лам-алеф, применяются, а написание справа налево воспроизводится в корректном визуальном порядке. Сформированные глифы записываются по индексу через вспомогательный шрифт Type0 (Identity-H), что позволяет корректно отображать формы, у которых нет собственного кода символа. Для каждого начертания создаётся один вспомогательный шрифт, который повторно используется последующими вызовами в том же документе. При сохранении документа встроенная программа шрифта подмножествуется до глифов, использованных в документе, с реальными попогличными метриками и картой ToUnicode, которая преобразует каждый сформированный глиф обратно в исходные символы — таким образом текст, скопированный или извлечённый из выходного файла, возвращает исходную строку, включая лигатуры. Позиционирование точное: каждый шаг продвижения глифа из движка формирования записывается в поток содержимого, поэтому расположение при печати соответствует сформированному измерению из GetShapedTextWidth.