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