function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;
| StartIndex | Integer. Indice a base zero del primo carattere del segmento da misurare. Vale 0 per default |
| Count | Integer. Numero di caratteri da includere nella misurazione a partire da StartIndex. Vale MaxInt per default, coprendo tutti i caratteri rimanenti della pagina |
Rectangle[0] fino a Rectangle[RectangleCount - 1]RectangleCount calcola l'insieme dei riquadri di delimitazione che insieme coprono una sequenza contigua di caratteri nella pagina corrente. I caratteri sulla stessa riga che condividono le stesse impostazioni del font vengono automaticamente uniti in un singolo rettangolo, riducendo il risultato al numero minimo di riquadri non sovrapposti necessari per evidenziare il testo
I parametri StartIndex e Count definiscono il segmento di caratteri da misurare. Un uso tipico è passare l'indice di corrispondenza restituito da FindFirst o FindNext come StartIndex e la lunghezza della stringa di ricerca come Count, per ottenere i rettangoli di evidenziazione di un risultato di ricerca
I rettangoli restituiti sono memorizzati in un buffer interno e rimangono validi fino alla successiva chiamata a RectangleCount. Recupera ogni rettangolo leggendo la proprietà Rectangle[Index] per Index nell'intervallo da 0 a RectangleCount - 1. Tutte le coordinate sono in unità dello spazio utente PDF (punti, origine nell'angolo inferiore sinistro)
Per un semplice conteggio di tutti i caratteri della pagina usa CharacterCount; per trovare dove si trova un carattere specifico sulla pagina usa 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;