procedure SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray);
| ObjectIndex | Integer. Index de base 0 de l’objet texte dont les positions de caractères doivent être définies (0 à ObjectCount - 1) |
| Positions | TPdfSingleArray. Tableau de décalages par caractère en points, relatif à l’origine de l’objet texte. Positions[0] définit la position du deuxième caractère, Positions[1] le troisième, et ainsi de suite. Le premier caractère est toujours à la position 0 |
SetTextPositions remplace l’espacement par défaut d’un objet texte en fournissant un décalage horizontal explicite pour chaque caractère. Cela permet un contrôle fin du crénage, une mise en page justifiée ou la reproduction exacte du placement des caractères trouvé dans un PDF existant
Le tableau Positions contient une entrée par espace entre deux caractères, en commençant par l’espace entre le premier et le deuxième caractère. Plus précisément, Positions[0] est la position du deuxième caractère, Positions[1] celle du troisième, et ainsi de suite — le tout mesuré en points à partir de l’origine de l’objet texte le long de la ligne de base du texte. Le premier caractère est toujours placé à l’offset 0. La longueur du tableau doit être inférieure d’une unité au nombre de caractères de l’objet texte ; les entrées en trop sont ignorées et les entrées manquantes laissent les caractères correspondants à leurs positions par défaut
Cette méthode est généralement utilisée avec SetText lors de la reconstruction ou de la modification d’objets texte dont l’espacement original des caractères doit être préservé exactement
// Add text, then apply custom per-character positions
Pdf1.NewPage(595, 842);
Pdf1.AddText('HELLO', 'Arial', 24, 72, 700);
var
Idx: Integer;
Pos: TPdfSingleArray;
begin
Idx := Pdf1.ObjectCount - 1;
// 'H' at 0 (implicit), 'E' at 20, 'L' at 38, 'L' at 56, 'O' at 74
SetLength(Pos, 4);
Pos[0] := 20; Pos[1] := 38; Pos[2] := 56; Pos[3] := 74;
Pdf1.SetTextPositions(Idx, Pos);
end;