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 solo a un span UTF-16 seleccionado con la fuente OpenType real del llamador mientras retiene el párrafo envolvente completo como pre-context y post-context de HarfBuzz

FirstUnit es un offset UTF-16 de base cero y UnitCount es una longitud UTF-16; ninguna frontera puede dividir un par surrogate, y un span de longitud cero no devuelve glyphs

FriBidi resuelve los niveles de embedding 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 reflejada

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

CharacterAdvance se aplica una vez por cluster formado, excepto en 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 comprobaciones de cobertura de fuente, el token de cancelación y los requisitos de dependencias del runtime nativo también se aplican a esta función

Un span parcial conserva el contexto de unión pero no posiciona independientemente una marca combinante con estilo distinto contra un glyph base de otra fuente; use shaping de cluster completo cuando una fuente cubre todo el cluster

Véase HPDFShapeHeadlessText, HPDFResolveHeadlessTextOrder y appearances de texto enriquecido contextuales