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