HPDFShapeHeadlessTextSpan

function HPDFShapeHeadlessTextSpan(const Context: UnicodeString;
  FirstUnit, UnitCount: Integer; const FontBytes: SysUtils.TBytes;
  MaximumGlyphs: Integer; CancellationToken: THPDFCancellationToken;
  CharacterAdvance: Double = 0; WordAdvance: Double = 0;
  ParagraphDirection: THPDFHeadlessTextDirection = htdAuto): THPDFHeadlessShapedGlyphs;

Da forma (shaping) solo a un span UTF-16 seleccionado con la fuente OpenType real del llamador, conservando el párrafo circundante completo como pre-context y post-context de HarfBuzz

FirstUnit es un offset UTF-16 con base cero y UnitCount es una longitud UTF-16; ningún límite puede partir un surrogate pair, y un span de longitud cero no devuelve glyphs

FriBidi resuelve los embedding levels a partir del párrafo completo; HarfBuzz recibe el script resuelto y da forma a los ítems seleccionados dentro de cada run visual, preservando las formas de unión arábigas y la puntuación en espejo

Los valores SourceOffset devueltos son relativos al span seleccionado, UnicodeText preserva cada cluster real seleccionado, y los advances y offsets de glyphs usan coordenadas de fuente de 1000 unidades

CharacterAdvance se aplica una vez por cluster con forma, excepto un cluster que contenga solo controles direccionales Unicode; WordAdvance se aplica a un cluster U+0020, y ambos deben ser finitos y usar las mismas coordenadas que Advance

ParagraphDirection puede preservar un párrafo existente de izquierda a derecha o de derecha a izquierda al dar forma a una línea física envuelta cuyo primer carácter fuerte difiere del párrafo original

Los presupuestos existentes de entrada y glyphs, las verificaciones de cobertura de fuentes, el cancellation token y los requisitos de dependencias del runtime nativo también aplican a esta función

Un span parcial conserva el contexto de unión pero no posiciona de forma independiente un signo combining con estilo distinto contra un glyph base de otra fuente; usa shaping de cluster completo cuando una fuente cubre todo el cluster

Ver HPDFShapeHeadlessText, HPDFResolveHeadlessTextOrder y appearances de rich text contextuales