PDFium Delphi Component Docs

CharacterIndexAtPos الطريقة

المكوّن: TPdf  ·  الوحدة: PDFium
الحصول على فهرس حرف عند موضع معين على الصفحة أو قربه. إذا لم يوجد حرف عند النقطة أو قربها، فستكون قيمة الإرجاع -1. وإذا حدث خطأ، فسيُعاد -3.

الصياغة

function CharacterIndexAtPos(X, Y, ToleranceX, ToleranceY: Double): Integer;

قيمة الإرجاع

فهرس أقرب حرف صفري الأساس، أو -1 إذا لم يقع أي حرف ضمن منطقة التسامح المحددة، أو -3 إذا حدث خطأ داخلي (مثلًا، إذا لم تُحمَّل أي صفحة).

الوصف

يعيِّن CharacterIndexAtPos نقطة بإحداثيات فضاء مستخدم PDF إلى فهرس أقرب حرف في الصفحة الحالية. إنها العملية العكسية لقراءة Character[Index] أو RectangleCount: عند إعطاء موضع (مثل نقرة فأرة مترجمة إلى إحداثيات صفحة)، يحدد الحرف الذي أشار إليه المستخدم.

يحدد المعاملان X و Y نقطة الاستعلام بوحدات فضاء مستخدم PDF. الأصل عند ركن أسفل يسار الصفحة، مع ازدياد Y لأعلى. يوسِّع المعاملان ToleranceX و ToleranceY منطقة بحث مستطيلة حول نقطة الاستعلام؛ وأي حرف يتقاطع صندوقه المحيط مع تلك المنطقة يكون مرشحًا.

إذا لم يُعثر على حرف ضمن منطقة التسامح تعيد الدالة -1. تشير قيمة إرجاع -3 إلى خطأ، عادةً لأنه لا توجد صفحة مفتوحة حاليًا. عند النجاح يمكن تمرير الفهرس المُعاد مباشرة إلى RectangleCount أو Character، أو استخدامه كمعامل StartIndex لـ FindFirst.

عند تحويل إحداثيات الشاشة (بالبكسل) إلى إحداثيات فضاء مستخدم PDF، استخدم عرض الصفحة وارتفاعها مع مستوى التكبير الحالي للقياس بشكل مناسب.

مثال

var
  CharIdx: Integer;
  PageX, PageY: Double;
begin
  Pdf1.PageIndex := 0;
  // PageX/PageY are already converted to PDF user-space units
  PageX := 150.0;
  PageY := 400.0;
  CharIdx := Pdf1.CharacterIndexAtPos(PageX, PageY, 5.0, 5.0);
  if CharIdx >= 0 then
    ShowMessage('Character: ' + Pdf1.Character[CharIdx])
  else if CharIdx = -1 then
    ShowMessage('No character at that position')
  else
    ShowMessage('Error retrieving character');
end;

انظر أيضًا

CharacterCount, Character, FindFirst, RectangleCount