Función HPDFShapeHeadlessTextOrderedSpan
Da forma a un span de estilo seleccionado contra una línea física completa usando niveles de embedding, 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éngalo 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 de la línea envolvente 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 de glyph, advances y offsets usan la fuente embebida real y una escala de 1000 unidades por em
La función valida arrays coincidentes, rangos visuales de escalares únicos, niveles de embedding, 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 formado, excepto en un cluster que contenga solo controles direccionales Unicode; el espaciado de palabras se aplica a un cluster de espacio, y los llamadores conservan su valor lógico original y el texto de estilo separados del orden visual de glyphs