Função HPDFResolveHeadlessTextLineOrder

Resolve os embedding levels de um parágrafo lógico completo e reordena uma linha física selecionada, retendo embeddings direcionais, overrides, isolates e o contexto de brackets pareados que começaram em linhas anteriores

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

FirstUnit é um offset UTF-16 com base zero e UnitCount é o comprimento da linha física, excluindo separadores de linha ou parágrafo; ambas as fronteiras precisam conter Unicode scalars completos

Os arrays retornados descrevem apenas aquela linha física, enquanto BaseRightToLeft descreve o parágrafo completo; scalars suplementares compartilham rank visual, level e script através de ambas as unidades UTF-16

A função aplica a resolução de embeddings do parágrafo, seguida do reset de whitespace da linha física e da reordenação visual por meio da biblioteca FriBidi nativa configurada; ela preserva o texto lógico e não faz shaping nem espelhamento de glyphs por si mesma

MaximumUnits precisa ser positivo e de no máximo 131070; o parágrafo completo precisa caber neste orçamento, conter Unicode válido e não ter separadores de linha

Para muitas linhas do mesmo parágrafo, resolva HPDFResolveHeadlessTextOrder uma vez e use HPDFReorderHeadlessTextLine para evitar processar o parágrafo repetidamente

Passe cada linha física e seu order retornado para HPDFShapeHeadlessTextOrderedSpan para o shaping contextual OpenType nativo