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