Функция HPDFReorderHeadlessTextLine

Переупорядочивает физическую строку по ранее вычисленным уровням и скриптам абзаца, удерживая явное направляющее состояние через перенос, без повторного разрешения всего абзаца

function HPDFReorderHeadlessTextLine(const Text: UnicodeString;
  const ParagraphOrder: THPDFHeadlessTextOrder; FirstUnit, MaximumUnits: Integer;
  CancellationToken: THPDFCancellationToken): THPDFHeadlessTextOrder;

Вычислите HPDFResolveHeadlessTextOrder один раз для полного абзаца; передайте точную выбранную строку как Text и её смещение в абзаце с нуля как FirstUnit

Вызывающий должен передать согласованный порядок абзаца и неизменённый логический текст строки; функция проверяет длины массивов, границы, уровни вложенности, границы скаляров и отмену, но не может восстановить текст, пропущенный в кэшированной записи

Переупорядочивание строки копирует только уровни выбранных скаляров, применяет сброс концевых пробелов и визуальное переупорядочивание через нативный FriBidi и возвращает локальные для строки массивы UTF-16; общую запись абзаца оно не меняет

MaximumUnits должен быть положительным и не более 131070; полный кэшированный абзац должен укладываться в этот бюджет, а Text — содержать корректный Unicode без разделителей

Rich appearance полей используют этот кэш для каждого логического абзаца, а затем шейпят каждый стилевой элемент относительно его полной физической строки через HPDFShapeHeadlessTextOrderedSpan