function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;
| StartIndex | Integer. Índice basado en 0 del primer carácter del segmento a medir. Su valor predeterminado es 0 |
| Count | Integer. Cantidad de caracteres que se incluyen en la medición, comenzando desde StartIndex. Su 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 en conjunto cubren una serie contigua de caracteres de la página actual. Los caracteres de la misma línea que comparten la misma configuración de fuente se combinan automáticamente en un único rectángulo, reduciendo el resultado al número mínimo de cajas sin superposición 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 los rectángulos de resaltado de un resultado de búsqueda
Los rectángulos devueltos se almacenan en un búfer interno y siguen siendo válidos hasta la siguiente llamada a RectangleCount. Recupere cada rectángulo leyendo la propiedad Rectangle[Index] con Index en el rango de 0 a RectangleCount - 1. Todas las coordenadas están en unidades del espacio de usuario del PDF (puntos, origen en la esquina inferior izquierda)
Para un simple conteo de todos los caracteres de la página use CharacterCount; para saber dónde se ubica 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];
// 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;