Нативный сложный текст в headless-режиме на Windows
Нативный строитель appearance шейпит арабский, иврит, комбинируемые последовательности и смешанный двунаправленный текст на Windows через соответствующие DLL HarfBuzz и FriBidi
Перед первой операцией сложного шейпинга задайте HOTPDF_HARFBUZZ_LIBRARY и HOTPDF_FRIBIDI_LIBRARY доверенными абсолютными путями к библиотекам; по умолчанию это libharfbuzz-0.dll и libfribidi-0.dll
Поставляйте DLL и их транзитивные зависимости под архитектуру процесса: приложениям Win32 нужны бинарники x86, а приложениям Win64 — x64
Разместите зависимые DLL в контролируемом приложением каталоге поиска до загрузки шейпинговых библиотек; абсолютный путь к главной DLL сам по себе не обеспечивает все зависимые библиотеки
Простые прямые глифы Unicode продолжают использовать встроенный шрифт без загрузки шейпингового runtime; если необходимый сложный шейпинг не может загрузить runtime или не находит нужный символ, сообщается сбой
API хранит логический Unicode в значениях полей, кластерах ToUnicode и ActualText, а рисует реальные контекстные глифы в визуальном порядке
CharacterSpacing и WordSpacing применяются один раз на шейпленный кластер и участвуют в измеренной раскладке; действуют также отмена вызывающего и бюджеты глифов, шрифтов и объектов
Нативный приёмочный набор проверяет реальные процессы Delphi и FPC на обеих архитектурах Windows, с независимыми сверками глифов, advance и пикселей MuPDF против выводов Linux
Контракты шейпинга и appearance см. в HPDFShapeHeadlessText и THPDFHeadlessTextAppearanceOptions