HPDFReorderHeadlessTextLine Function
Reordena uma linha física usando níveis de parágrafos e scripts resolvidos anteriormente, mantendo o estado direcional explícito através do wrap sem resolver o parágrafo inteiro outra vez
function HPDFReorderHeadlessTextLine(const Text: UnicodeString;
const ParagraphOrder: THPDFHeadlessTextOrder; FirstUnit, MaximumUnits: Integer;
CancellationToken: THPDFCancellationToken): THPDFHeadlessTextOrder;
Resolva HPDFResolveHeadlessTextOrder uma vez para o parágrafo completo; passe a linha selecionada exata como Text e o offset UTF-16 dela no parágrafo, com base zero, como FirstUnit
Quem chama tem de fornecer a ordem de parágrafo correspondente e o texto lógico da linha inalterado; a função valida comprimentos de arrays, bounds, níveis de embedding, fronteiras de scalars e cancelamento, mas não consegue reconstruir texto omitido do registo em cache
A reordenação da linha copia apenas os níveis de scalars selecionados, aplica o reset de whitespace final e a reordenação visual através de FriBidi nativo, e devolve arrays UTF-16 locais da linha; não modifica o registo partilhado do parágrafo
MaximumUnits tem de ser positivo e no máximo 131070; o parágrafo completo em cache tem de caber neste orçamento e Text tem de conter Unicode válido sem separadores
As aparências de campos rich usam esta cache para cada parágrafo lógico e depois aplicam shaping a cada item de estilo contra a linha física completa dele através de HPDFShapeHeadlessTextOrderedSpan