function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;
| StartIndex | Integer. فهرس أول حرف في المقطع المطلوب قياسه صفري الأساس. الافتراضي 0. |
| Count | Integer. عدد الأحرف المطلوب تضمينها في القياس، بدءًا من 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;