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