Función HPDFShapeHeadlessTextOrderedSpan
Da forma a un span de estilo seleccionado contra una línea física completa usando embedding levels, scripts y posiciones visuales derivados del párrafo
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 debe cubrir cada unidad UTF-16 del Context completo de la línea física; obténlo de HPDFResolveHeadlessTextLineOrder o HPDFReorderHeadlessTextLine
FirstUnit y UnitCount seleccionan escalares completos dentro de la línea física; el buffer real de HarfBuzz recibe el texto circundante de la línea mientras que la dirección y el script vienen del orden de párrafo resuelto
Los offsets de fuente de los glyphs devueltos son relativos al span de estilo seleccionado; los IDs, advances y offsets de glyphs usan la fuente embebida real y una escala de 1000 unidades por em
La función valida arreglos coincidentes, ranks visuales de escalares únicos, embedding levels, consistencia de surrogates, espaciado finito, límites de glyphs y cancelación; un orden malformado no hace fallback silencioso a detección de dirección aislada
El espaciado de caracteres se aplica una vez por cluster con forma, excepto un cluster que contenga solo controles direccionales Unicode; el espaciado de palabras aplica a un cluster de espacio, y los llamadores conservan su valor lógico original y el texto de estilo por separado del orden visual de glyphs