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;

Façonne uniquement un span UTF-16 sélectionné avec la police OpenType réelle de l'appelant tout en conservant le paragraphe environnant complet comme pre-context et post-context HarfBuzz

FirstUnit est un offset UTF-16 en base zéro et UnitCount une longueur UTF-16 ; aucune des deux bornes ne peut couper une paire de substitution, et un span de longueur nulle ne renvoie aucun glyphe

FriBidi résout les niveaux d'embedding à partir du paragraphe complet ; HarfBuzz reçoit le script résolu et façonne les éléments sélectionnés au sein de chaque run visuel, en préservant les formes de liaison arabes et la ponctuation en miroir

Les valeurs SourceOffset renvoyées sont relatives au span sélectionné, UnicodeText préserve chaque cluster réellement sélectionné, et les avances et offsets de glyphes utilisent des coordonnées de police en unités de 1000

CharacterAdvance s'applique une fois par cluster façonné, sauf pour un cluster ne contenant que des caractères de contrôle directionnels Unicode ; WordAdvance s'applique à un cluster U+0020, et les deux doivent être finis et utiliser les mêmes coordonnées qu'Advance

ParagraphDirection peut préserver un paragraphe existant de gauche à droite ou de droite à gauche quand on façonne une ligne physique enveloppée dont le premier caractère fort diffère du paragraphe d'origine

Les budgets d'entrée et de glyphes existants, les vérifications de couverture de polices, le token d'annulation et les exigences de dépendances du runtime natif s'appliquent aussi à cette fonction

Un span partiel conserve le contexte de liaison mais ne positionne pas indépendamment une marque combinante de style différent par rapport à un glyphe de base issu d'une autre police ; utilisez le façonnage de clusters complets quand une seule police couvre tout le cluster

Voir HPDFShapeHeadlessText, HPDFResolveHeadlessTextOrder et les appearances de rich text en contexte