Función HPDFResolveHeadlessTextLineOrder

Resuelve los embedding levels de un párrafo lógico completo y reordena una línea física seleccionada conservando el contexto de embeddings direccionales, overrides, isolates y brackets emparejados que comenzó en líneas anteriores

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

FirstUnit es un offset UTF-16 con base cero y UnitCount es la longitud de la línea física, excluyendo separadores de línea o párrafo; ambos límites deben contener escalares Unicode completos

Los arreglos devueltos describen solo esa línea física, mientras que BaseRightToLeft describe el párrafo completo; los escalares suplementarios comparten rank visual, nivel y script a través de ambas unidades UTF-16

La función aplica la resolución de embeddings del párrafo seguida del reset de espacios en blanco de la línea física y el reordenamiento visual a través de la librería FriBidi nativa configurada; preserva el texto lógico y no hace shaping ni espejo de glyphs por sí misma

MaximumUnits debe ser positivo y a lo sumo 131070; el párrafo completo debe caber en este presupuesto, contener Unicode válido y no tener separadores de línea

Para muchas líneas del mismo párrafo, resuelve HPDFResolveHeadlessTextOrder una vez y usa HPDFReorderHeadlessTextLine para evitar procesar el párrafo repetidamente

Pasa cada línea física y su orden devuelto a HPDFShapeHeadlessTextOrderedSpan para el shaping contextual OpenType nativo