function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;
| StartIndex | Integer. De 0-gebaseerde index van het eerste teken in het te meten segment. Standaard 0 |
| Count | Integer. Aantal tekens om in de meting op te nemen, vanaf StartIndex. Standaard MaxInt, wat alle resterende tekens op de pagina omvat |
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 die dezelfde lettertype-instellingen delen, worden automatisch samengevoegd tot één rechthoek, zodat het resultaat het minimale aantal niet-overlappende vakken bevat dat nodig is om de tekst te markeren
De parameters StartIndex en Count bepalen welk tekensegment wordt gemeten. Een gebruikelijk scenario is de match-index door te geven die door FindFirst of FindNext wordt teruggegeven als StartIndex, en de lengte van de zoekreeks als Count, om highlightrechthoeken voor een zoekresultaat te verkrijgen
De geretourneerde rechthoeken worden opgeslagen 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 PDF user-space eenheden (punten, oorsprong linksonder)
Gebruik voor een eenvoudige telling van alle tekens op de pagina CharacterCount; om te vinden waar een specifiek teken op de pagina staat gebruikt u 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;