function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;
| StartIndex | Integer. De 0-based index van het eerste teken in het op te meten segment. Standaard 0 |
| Count | Integer. Het aantal tekens dat vanaf StartIndex in de meting meedoet. Standaard MaxInt, waarmee alle resterende tekens op de pagina worden gedekt |
Rectangle[0] tot Rectangle[RectangleCount - 1]RectangleCount berekent de set begrenzingsrechthoeken die samen een aaneengesloten reeks tekens op de huidige pagina afdekken. Tekens op dezelfde regel met dezelfde fontinstellingen worden automatisch samengevoegd tot één rechthoek, waardoor het resultaat uit het minimale aantal niet-overlappende vakken bestaat dat nodig is om de tekst te markeren
De parameters StartIndex en Count bepalen het op te meten tekensegment. Een typisch gebruik is om de matchindex die FindFirst of FindNext teruggeeft als StartIndex mee te geven en de lengte van de zoekstring als Count, zodat u markeerrechthoeken voor een zoekresultaat krijgt
De teruggegeven rechthoeken staan in een interne buffer en blijven geldig tot de volgende aanroep van RectangleCount. Haal elke rechthoek op door de eigenschap Rectangle[Index] te lezen voor Index in het bereik 0 tot RectangleCount - 1. Alle coördinaten zijn in eenheden van de PDF-gebruikersruimte (punten, oorsprong linksonder)
Gebruik CharacterCount voor alleen het aantal tekens op de pagina; gebruik CharacterIndexAtPos om te vinden waar een specifiek teken op de pagina staat
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];
// Teken een markeervak met 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;