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, ширин и политики встраивания