Fonction HPDFShapeHeadlessTextOrderedSpan

Façonne un span de style sélectionné par rapport à une ligne physique complète en utilisant les niveaux d'embedding, scripts et positions visuelles dérivés du paragraphe

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 doit couvrir chaque unité UTF-16 du Context complet de la ligne physique ; obtenez-le depuis HPDFResolveHeadlessTextLineOrder ou HPDFReorderHeadlessTextLine

FirstUnit et UnitCount sélectionnent des scalaires complets à l'intérieur de la ligne physique ; le vrai buffer HarfBuzz reçoit le texte des lignes environnantes tandis que la direction et le script viennent de l'ordre de paragraphe résolu

Les offsets source des glyphes renvoyés sont relatifs au span de style sélectionné ; les IDs de glyphes, avances et offsets utilisent la vraie police embarquée et une échelle de 1000 unités par em

La fonction valide la correspondance des tableaux, l'unicité des rangs visuels scalaires, les niveaux d'embedding, la cohérence des surrogates, l'espacement fini, les limites de glyphes et l'annulation ; un ordre mal formé ne retombe pas silencieusement sur une détection de direction isolée

L'espacement des caractères s'applique une fois par cluster façonné, sauf pour un cluster ne contenant que des caractères de contrôle directionnels Unicode ; l'espacement des mots s'applique à un cluster espace, et les appelants conservent leur valeur logique et leur texte de style d'origine séparément de l'ordre visuel des glyphes