Função HPDFShapeHeadlessTextOrderedSpan
Faz o shaping de um span de estilo selecionado contra uma linha física completa, usando embedding levels, scripts e posições visuais derivados do parágrafo
function HPDFShapeHeadlessTextOrderedSpan(const Context: UnicodeString;
FirstUnit, UnitCount: Integer; const Order: THPDFHeadlessTextOrder;
const FontBytes: SysUtils.TBytes; MaximumGlyphs: Integer;
CancellationToken: THPDFCancellationToken;
CharacterAdvance: Double = 0; WordAdvance: Double = 0): THPDFHeadlessShapedGlyphs;
Order precisa cobrir cada unidade UTF-16 do Context completo da linha física; obtenha-o de HPDFResolveHeadlessTextLineOrder ou HPDFReorderHeadlessTextLine
FirstUnit e UnitCount selecionam scalars completos dentro da linha física; o buffer real do HarfBuzz recebe o texto ao redor da linha, enquanto direção e script vêm do order resolvido do parágrafo
Os offsets de origem dos glyphs retornados são relativos ao span de estilo selecionado; glyph IDs, advances e offsets usam a fonte embutida real e uma escala de 1000 units por em
A função valida arrays correspondentes, ranks visuais únicos de scalars, embedding levels, consistência de surrogates, espaçamento finito, limites de glyphs e cancelamento; um order malformado não faz fallback silencioso para detecção isolada de direção
O character spacing é aplicado uma vez por cluster com shaping, exceto um cluster contendo apenas controles direcionais Unicode; o word spacing se aplica a um cluster de espaço, e os chamadores mantêm seu valor lógico original e o texto do estilo separados da ordem visual dos glyphs