function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;
| StartIndex | Integer。要測量片段中第一個字元的以 0 為基底索引。預設為 0 |
| Count | Integer。從 StartIndex 開始要納入測量的字元數。預設為 MaxInt,涵蓋頁面上所有剩餘字元 |
Rectangle[0] 到 Rectangle[RectangleCount - 1] 索引屬性存取RectangleCount 會計算一組共同涵蓋目前頁面上連續字元段的邊界矩形。同一行中採用相同字型設定的字元會自動合併為單一矩形,使結果縮減到反白該文字所需數量最少的互不重疊方框
StartIndex 與 Count 參數定義要測量的字元片段。典型用法是把 FindFirst 或 FindNext 傳回的符合索引當作 StartIndex,把搜尋字串的長度當作 Count,以取得搜尋結果的反白矩形
傳回的矩形會儲存在內部緩衝區,並保持有效直到下次呼叫 RectangleCount 為止。請對 Index 在 0 到 RectangleCount - 1 範圍內逐一讀取 Rectangle[Index] 屬性以取得每個矩形。所有座標均為 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;