PDFium Delphi Component Docs

SetTextPositions الطريقة

المكوّن: TPdf  ·  الوحدة: PDFium
تعيين مواضع لكل حرف لكائن النص المحدد. موضع أول حرف ضمني عند 0؛ ويعيِّن Positions[0] موضع الحرف الثاني، و Positions[1] موضع الثالث، وهكذا. القيم بالنقاط ونسبية إلى أصل كائن النص

الصياغة

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

ObjectIndexInteger. فهرس كائن النص الصفري الذي ستُعيَّن مواضع أحرفه (من 0 إلى ObjectCount - 1).
PositionsTPdfSingleArray. مصفوفة من الإزاحات لكل حرف بالنقاط، نسبية إلى أصل كائن النص. يعيِّن 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;

انظر أيضًا

SetText, ObjectCount