PDFium Delphi Component Docs

RectangleCount الطريقة

المكوّن: TPdf  ·  الوحدة: PDFium
عد المناطق المستطيلة التي يشغلها مقطع نصوص. تدمج الدالة تلقائيًا صناديق الأحرف الصغيرة في صندوق أكبر إذا كانت تلك الأحرف على السطر نفسه وتستخدم إعدادات الخط نفسها.

الصياغة

function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;

StartIndexInteger. فهرس أول حرف في المقطع المطلوب قياسه صفري الأساس. الافتراضي 0.
CountInteger. عدد الأحرف المطلوب تضمينها في القياس، بدءًا من StartIndex. الافتراضي MaxInt، الذي يغطي جميع الأحرف المتبقية على الصفحة.

قيمة الإرجاع

عدد المستطيلات المحيطة المدمجة التي تغطي مقطع الأحرف المحدد. بعد هذا الاستدعاء، يمكن الوصول إلى كل مستطيل عبر الخاصية المفهرسة Rectangle[0] حتى Rectangle[RectangleCount - 1].

الوصف

يحسب RectangleCount مجموعة المستطيلات المحيطة التي تغطي معًا مقطعًا متجاورًا من الأحرف في الصفحة الحالية. تُدمج الأحرف على السطر نفسه التي تتشارك إعدادات الخط نفسها تلقائيًا في مستطيل واحد، مما يقلل النتيجة إلى الحد الأدنى من الصناديق غير المتداخلة اللازمة لتمييز النص.

يحدد المعاملان StartIndex و Count مقطع الأحرف المطلوب قياسه. الاستخدام النموذجي هو تمرير فهرس التطابق الذي يعيده FindFirst أو FindNext كـ StartIndex، وطول سلسلة البحث كـ Count، للحصول على مستطيلات التمييز لنتيجة بحث.

تُخزَّن المستطيلات المُعادة في مخزن داخلي وتظل صالحة حتى الاستدعاء التالي لـ RectangleCount. استرد كل مستطيل بقراءة الخاصية Rectangle[Index] لـ Index في النطاق من 0 إلى RectangleCount - 1. جميع الإحداثيات بوحدات فضاء مستخدم PDF (نقاط، الأصل عند أسفل اليسار).

لعد عادي لجميع الأحرف على الصفحة استخدم CharacterCount؛ وللعثور على مكان جلوس حرف محدد على الصفحة استخدم CharacterIndexAtPos.

مثال

var
  MatchIdx, RCount, I: Integer;
  Rect: TPdfRectangle;
begin
  Pdf1.PageIndex := 0;
  MatchIdx := Pdf1.FindFirst('PDFium');
  if MatchIdx >= 0 then
  begin
    RCount := Pdf1.RectangleCount(MatchIdx, Length('PDFium'));
    for I := 0 to RCount - 1 do
    begin
      Rect := Pdf1.Rectangle[I];
      // Draw a highlight box using Rect.Left/Top/Right/Bottom
      Memo1.Lines.Add(Format('Rect %d: (%.1f, %.1f, %.1f, %.1f)',
        [I, Rect.Left, Rect.Bottom, Rect.Right, Rect.Top]));
    end;
  end;
end;

انظر أيضًا

Rectangle, FindFirst, CharacterCount, CharacterIndexAtPos, Text