procedure SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray);
| ObjectIndex | Integer. Zero-based indeks obiektu tekstowego, którego pozycje znaków mają zostać ustawione (0 do ObjectCount - 1) |
| Positions | TPdfSingleArray. Tablica przesunięć znaków w punktach względem początku obiektu tekstowego Positions[0] ustawia pozycję drugiego znaku, Positions[1] trzeciego i tak dalej Pierwszy znak zawsze ma pozycję 0 |
SetTextPositions nadpisuje domyślne odstępy znaków obiektu tekstowego, podając jawne poziome przesunięcie dla każdego znaku Umożliwia to precyzyjną kontrolę kerningu, wyrównany układ tekstu albo odtworzenie dokładnego rozmieszczenia znaków z istniejącego PDF
Tablica Positions zawiera jeden wpis na każdą przerwę między znakami, zaczynając od przerwy między pierwszym a drugim znakiem Dokładniej, Positions[0] to pozycja drugiego znaku, Positions[1] pozycja trzeciego i tak dalej — wszystko mierzone w punktach od początku obiektu tekstowego wzdłuż linii bazowej tekstu Pierwszy znak zawsze ma przesunięcie 0 Długość tablicy powinna być o jeden mniejsza niż liczba znaków w obiekcie tekstowym; nadmiarowe wpisy są ignorowane, a brakujące pozostawiają odpowiednie znaki na pozycjach domyślnych
Metody tej zwykle używa się razem z SetText podczas odtwarzania albo edycji obiektów tekstowych, których oryginalne odstępy między znakami muszą zostać zachowane dokładnie
// 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;