Funktion HPDFResolveHeadlessTextLineOrder

Löst Embedding-Levels für einen kompletten logischen Absatz auf und sortiert eine ausgewählte physikalische Zeile neu, wobei direktionale Embeddings, Overrides, Isolates und Paarklammer-Kontext von früheren Zeilen erhalten bleiben

function HPDFResolveHeadlessTextLineOrder(const Paragraph: UnicodeString;
  FirstUnit, UnitCount, MaximumUnits: Integer;
  CancellationToken: THPDFCancellationToken;
  ParagraphDirection: THPDFHeadlessTextDirection = htdAuto): THPDFHeadlessTextOrder;

FirstUnit ist ein nullbasierter UTF-16-Offset und UnitCount die physikalische Zeilenlänge ohne Zeilen- oder Absatztrenner; beide Grenzen müssen vollständige Unicode-Skalare enthalten

Die zurückgegebenen Arrays beschreiben nur diese physikalische Zeile, während BaseRightToLeft den kompletten Absatz beschreibt; supplementary Skalare teilen sich visuellen Rang, Level und Skript über beide UTF-16-Units

Die Funktion wendet die Absatz-Embedding-Auflösung an, danach Whitespace-Reset und visuelle Neusortierung der physikalischen Zeile über die konfigurierte native FriBidi-Bibliothek; sie bewahrt den logischen Text und formt oder spiegelt selbst keine Glyphen

MaximumUnits muss positiv und höchstens 131070 sein; der komplette Absatz muss in dieses Budget passen, gültiges Unicode enthalten und keine Zeilentrenner haben

Bei vielen Zeilen aus demselben Absatz löse HPDFResolveHeadlessTextOrder einmal auf und nutze HPDFReorderHeadlessTextLine, um den Absatz nicht wiederholt zu verarbeiten

Übergib jede physikalische Zeile mit ihrer zurückgegebenen Ordnung an HPDFShapeHeadlessTextOrderedSpan für natives kontextuelles OpenType-Shaping