function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;
| StartIndex | Integer. The 0-based index of the first character in the segment to measure. Defaults to 0. |
| Count | Integer. The number of characters to include in the measurement, starting from StartIndex. Defaults to MaxInt, which covers all remaining characters on the page. |
Rectangle[0] through Rectangle[RectangleCount - 1] indexed property.RectangleCount vypočítá sadu ohraničujících obdélníků, které společně pokrývají souvislý úsek znaků na aktuální stránce. Znaky na stejném řádku, které sdílejí stejné nastavení písma, se automaticky sloučí do jediného obdélníku, čímž se výsledek zredukuje na minimální počet nepřekrývajících se boxů potřebných ke zvýraznění textu.
Parametry StartIndex a Count definují měřený úsek znaků. Typické použití je předat index výskytu vrácený metodami FindFirst nebo FindNext jako StartIndex a délku hledaného řetězce jako Count, abyste získali obdélníky zvýraznění pro výsledek hledání.
Vrácené obdélníky se uloží do interní vyrovnávací paměti a zůstanou platné až do příštího volání RectangleCount. Každý obdélník získáte čtením vlastnosti Rectangle[Index] pro Index v rozsahu 0 až RectangleCount - 1. Všechny souřadnice jsou v jednotkách uživatelského prostoru PDF (body, počátek vlevo dole).
Pro prostý počet všech znaků na stránce použijte CharacterCount; chcete-li zjistit, kde konkrétní znak na stránce leží, použijte 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];
// Nakreslí box zvýraznění pomocí 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;