HPDFResolveHeadlessTextOrder
function HPDFResolveHeadlessTextOrder(const Text: UnicodeString;
MaximumUnits: Integer; CancellationToken: THPDFCancellationToken;
ParagraphDirection: THPDFHeadlessTextDirection = htdAuto): THPDFHeadlessTextOrder;
Вычисляет отображение скаляров из логического порядка в визуальный, уровни вложенности и script-элементы одного реального абзаца Unicode через нативные библиотеки FriBidi и HarfBuzz
MaximumUnits — положительный бюджет UTF-16 не более 131070; битые суррогаты и разделители абзацев CR, LF, NEL, LS или PS приводят к отказу, а пустой абзац возвращает пустые массивы
Каждый массив имеет Length(Text) записей; оба UTF-16 unit'а дополнительного скаляра делят его визуальную позицию, уровень вложенности и script-тег
VisualPositions содержит визуальные позиции скаляров с нуля, Levels — уровни вложенности FriBidi, а Scripts — script-теги HarfBuzz в виде значений Cardinal
BaseRightToLeft фиксирует разрешённое направление абзаца; значения script common и inherited получают соседний контекст скрипта абзаца для разбиения стилевых элементов
Отмена проверяется во время декодирования Unicode, классификации скриптов и отображения элементов; при удержании исходного направления через перенесённые строки вызывайте функцию с явным ParagraphDirection
См. THPDFHeadlessTextOrder, THPDFHeadlessTextDirection и HPDFShapeHeadlessTextSpan