HPDFShapeHeadlessTextOrderedSpan Function

Aplica shaping a um trecho de estilo selecionado contra uma linha física completa, usando níveis de embedding, scripts e posições visuais derivados do parágrafo

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 tem de cobrir todas as unidades UTF-16 do Context completo da linha física; obtenha-o de HPDFResolveHeadlessTextLineOrder ou HPDFReorderHeadlessTextLine

FirstUnit e UnitCount selecionam scalars completos dentro da linha física; o buffer HarfBuzz real recebe o texto envolvente da linha, enquanto a direção e o script vêm da ordem de parágrafo resolvida

Os offsets de fonte dos glyphs devolvidos são relativos ao trecho de estilo selecionado; os IDs de glyphs, os avanços e os offsets usam o tipo de letra incorporado real e uma escala de 1000 unidades por em

A função valida arrays correspondentes, ranks visuais únicos de scalars, níveis de embedding, consistência de surrogates, espaçamento finito, limites de glyphs e cancelamento; uma ordem malformada não faz silenciosamente fallback para deteção isolada de direção

O espaçamento de carateres aplica-se uma vez por cluster com shaping, exceto num cluster contendo apenas controlos direcionais Unicode; o espaçamento de palavras aplica-se a um cluster de espaço, e quem chama mantém o valor lógico e o texto de estilo originais separados da ordem visual de glyphs