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