procedure SetTextPositions(ObjectIndex: Integer; const Positions: TPdfSingleArray);
| ObjectIndex | Integer. فهرس كائن النص الصفري الذي ستُعيَّن مواضع أحرفه (من 0 إلى ObjectCount - 1). |
| Positions | TPdfSingleArray. مصفوفة من الإزاحات لكل حرف بالنقاط، نسبية إلى أصل كائن النص. يعيِّن Positions[0] موضع الحرف الثاني، و Positions[1] الثالث، وهكذا. يكون الحرف الأول دائمًا عند الموضع 0. |
يتجاوز SetTextPositions التباعد الافتراضي لأحرف كائن النص بتزويد إزاحة أفقية صريحة لكل حرف. يتيح هذا تحكمًا دقيقًا في تقارب الأحرف، أو تخطيط نص مُسوَّى، أو إعادة إنتاج الموضع الدقيق للأحرف الموجود في PDF قائم
تحتوي مصفوفة Positions على مدخل واحد لكل فجوة بين حرفين، بدءًا من الفجوة بين الحرفين الأول والثاني. وتحديدًا، يمثل Positions[0] موضع الحرف الثاني، و Positions[1] موضع الثالث، وهكذا — وكلها مقاسة بالنقاط من أصل كائن النص على طول سطر الأساس. ويوضع الحرف الأول دائمًا عند الإزاحة 0. وينبغي أن يكون طول المصفوفة أقل بواحد من عدد أحرف كائن النص؛ فالمدخلات الفائضة تُتجاهل، والمدخلات الناقصة تترك الأحرف المقابلة في مواضعها الافتراضية
تُستخدم هذه الطريقة عادةً مع SetText عند إعادة بناء أو تحرير كائنات نص يجب الحفاظ على تباعد أحرفها الأصلي بدقة
// 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;