PDFium Delphi Component Docs

SetTextPositions Méthode

Composant: TPdf  ·  Unit: PDFium
Définit les positions par caractère pour l’objet texte spécifié. La position du premier caractère est implicite à 0 ; Positions[0] définit la position du deuxième caractère, Positions[1] celle du troisième, et ainsi de suite. Les valeurs sont exprimées en points et relatives à l’origine de l’objet texte

Syntax

procedure SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray);

ObjectIndexInteger. Index de base 0 de l’objet texte dont les positions de caractères doivent être définies (0 à ObjectCount - 1)
PositionsTPdfSingleArray. 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

Description

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

Example

// 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;

See Also

SetText, ObjectCount