function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;
| StartIndex | Integer. El índice basado en 0 del primer carácter del segmento a medir. El valor predeterminado es 0 |
| Count | Integer. El número de caracteres a incluir en la medición, empezando desde StartIndex. El valor predeterminado es MaxInt, que cubre todos los caracteres restantes de la página |
Rectangle[0] hasta Rectangle[RectangleCount - 1]RectangleCount calcula el conjunto de rectángulos delimitadores que juntos cubren una secuencia contigua de caracteres en la página actual. Los caracteres de la misma línea que comparten la misma configuración de fuente se fusionan automáticamente en un solo rectángulo, reduciendo el resultado al número mínimo de cajas no superpuestas necesarias para resaltar el texto
Los parámetros StartIndex y Count definen el segmento de caracteres a medir. Un uso típico es pasar el índice de coincidencia devuelto por FindFirst o FindNext como StartIndex, y la longitud de la cadena de búsqueda como Count, para obtener rectángulos de resaltado para un resultado de búsqueda
Los rectángulos devueltos se almacenan en un búfer interno y permanecen válidos hasta la siguiente llamada a RectangleCount. Recupere cada rectángulo leyendo la propiedad Rectangle[Index] para Index en el rango 0 a RectangleCount - 1. Todas las coordenadas están en unidades de espacio de usuario PDF (puntos, origen abajo a la izquierda)
Para un recuento simple de todos los caracteres de la página use CharacterCount; para encontrar dónde se asienta un carácter específico en la página use 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];
// Dibujar un cuadro de resaltado usando 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;