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;

Aplica shaping apenas a um trecho UTF-16 selecionado com o tipo de letra OpenType real de quem chama, mantendo o parágrafo envolvente completo como pre-context e post-context HarfBuzz

FirstUnit é um offset UTF-16 com base zero e UnitCount é um comprimento UTF-16; nenhuma das fronteiras pode dividir um surrogate pair, e um trecho de comprimento zero não devolve glyphs

FriBidi resolve os níveis de embedding a partir do parágrafo completo; HarfBuzz recebe o script resolvido e aplica shaping aos itens selecionados dentro de cada run visual, preservando as formas de ligação árabes e a pontuação espelhada

Os valores SourceOffset devolvidos são relativos ao trecho selecionado, UnicodeText preserva cada cluster realmente selecionado, e os avanços e offsets de glyphs usam coordenadas de 1000 unidades do tipo de letra

CharacterAdvance aplica-se uma vez por cluster com shaping, exceto num cluster contendo apenas controlos direcionais Unicode; WordAdvance aplica-se a um cluster U+0020, e ambos têm de ser finitos e usar as mesmas coordenadas que Advance

ParagraphDirection pode preservar um parágrafo existente da esquerda para a direita ou da direita para a esquerda ao aplicar shaping a uma linha física com wrap cujo primeiro caráter forte difere do parágrafo original

Os orçamentos existentes de entrada e de glyphs, as verificações de cobertura de tipos de letra, o token de cancelamento e os requisitos de dependências de runtimes nativos também se aplicam a esta função

Um trecho parcial mantém o contexto de ligação mas não posiciona de forma independente uma marca de combinação com estilo diferente contra um glyph base de outro tipo de letra; use shaping de clusters completos quando um tipo de letra cobre o cluster inteiro

Veja HPDFShapeHeadlessText, HPDFResolveHeadlessTextOrder e as aparências contextualizadas de rich text