HPDFBuildHeadlessTextAppearance
function HPDFBuildHeadlessTextAppearance(const Text: UnicodeString;
const TrueTypeFont: SysUtils.TBytes; FirstObjectNumber: Integer;
const Options: THPDFHeadlessTextAppearanceOptions): THPDFHeadlessTextAppearance;
Строит настоящий Unicode Form XObject и его шрифтовые объекты, используя общий парсер HotPDF, классы объектов, читатель cmap, реальные метаданные advance и дескриптора TrueType и опциональный шейпинг HarfBuzz/FriBidi
Возвращённый набор владеет семью последовательными объектами, начиная с положительного FirstObjectNumber; для регистрации объектов, связей полей, шифрования и ограниченного инкрементального вывода используйте метод внешних видов документа
Шрифт требует именованных контуров TrueType glyf/loca, согласованной сигнатуры sfnt и магии head, упорядоченных ограниченных смещений глифов и полной корректной cmap Unicode, целиком лежащей в объявленной протяжённости таблицы
Поиск Unicode не откатывается к отображениям Symbol или MacRoman; отсутствующие глифы отклоняются, а не заменяются визуально посторонним глифом
Поддерживаемый текст — прямой горизонтальный: латиница, греческий, кириллица, простой CJK, прекомпозированный хангыль, избранные математические символы и изолированные эмодзи, когда переданный шрифт содержит каждый скаляр
Многострочная вёрстка CR/LF, измеренный перенос, comb-ячейки, повороты на четверть оборота и прямоугольные или круглые рамки управляются записью опций
При включённом ShapeComplexText сложные письменности, комбинируемые последовательности, bidi и лигатуры используют нативный шейпинг HarfBuzz и упорядочивание run FriBidi; некорректные суррогаты, неподдерживаемые управляющие символы, отсутствующие глифы, недопустимые права шрифта и исчерпанные бюджеты остаются ошибками
Сложные глифы получают индивидуальное позиционирование, включая шейпинг-смещения, отображения ToUnicode с учётом кластеров и marked-content ActualText, сохраняющий логический источник; читалки могут использовать собственный порядок извлечения текста аннотаций
Linux загружает libharfbuzz.so.0 и libfribidi.so.0; Windows требует libharfbuzz-0.dll и libfribidi-0.dll совпадающей архитектуры, с опциональными явными путями через HOTPDF_HARFBUZZ_LIBRARY и HOTPDF_FRIBIDI_LIBRARY
Полные исходные байты шрифта встраиваются с его реальным именем PostScript, границами, ascent, descent, углом наклона и флагом фиксированного шага; cap height берётся из OS/2, когда доступна, иначе из ascender в hhea, а StemV использует консервативную оценку фиксированного дескриптора
Требуется встраивание installable или editable; полный embedding соблюдает no-subsetting, а права restricted, preview-and-print, bitmap-only, отсутствующие или неизвестные отклоняются
Построитель проверяет байты шрифта, число глифов, размеры потоков и словарей, корректность скаляров и отмену, прежде чем вернуть собственный набор
См. THPDFHeadlessTextAppearanceOptions, THPDFHeadlessTextAppearance и SetTextFieldValueWithAppearance
Шрифты OpenType CFF 1 поддерживаются через компактный бэкенд внешних видов шрифтов с сохранением полного шрифта, фактического отображения CID, текста Unicode, ширин и политики встраивания