procedure SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray);
| ObjectIndex | Integer. Karakter konumları ayarlanacak metin nesnesinin sıfır tabanlı indeksi (0 ile ObjectCount - 1 arası) |
| Positions | TPdfSingleArray. Array of per-character offsets in points, relative to the text object origin. Positions[0] sets the position of the second character, Positions[1] the third, and so on. The first character is always at position 0. |
SetTextPositions, her karakter için açık bir yatay konum vererek bir metin nesnesinin varsayılan karakter aralığını geçersiz kılar. Bu; ince taneli kerning denetimi, iki yana yaslı metin düzeni veya mevcut bir PDF'teki tam karakter yerleşiminin yeniden üretilmesi sağlar
Positions dizisi, ilk ve ikinci karakter arasındaki boşluktan başlayarak karakterler arası her boşluk için bir girdi içerir. Özellikle Positions[0] ikinci karakterin konumudur, Positions[1] üçüncü karakterin konumu ve böyle gider — tümü, metin nesnesinin başlangıcından metin baseline'ı boyunca point cinsinden ölçülür. İlk karakter daima 0 konumuna yerleştirilir. Dizi uzunluğu, metin nesnesindeki karakter sayısından bir eksik olmalıdır; artan girdiler yok sayılır, eksik girdiler ise ilgili karakterleri varsayılan konumlarında bırakır
Bu metot, özgün karakter aralığı tam olarak korunması gereken metin nesnelerini yeniden kurarken veya düzenlerken tipik olarak SetText ile birlikte kullanılır
// 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;