function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;
| StartIndex | Integer. O índice iniciado em 0 do primeiro caractere no segmento a medir. Tem padrão 0 |
| Count | Integer. O número de caracteres a incluir na medição, começando em StartIndex. Tem padrão MaxInt, que cobre todos os caracteres restantes da página |
Rectangle[0] até Rectangle[RectangleCount - 1]RectangleCount calcula o conjunto de retângulos delimitadores que juntos cobrem uma sequência contígua de caracteres na página atual. Caracteres na mesma linha que compartilham as mesmas configurações de fonte são mesclados automaticamente em um único retângulo, reduzindo o resultado ao número mínimo de caixas sem sobreposição necessárias para destacar o texto
Os parâmetros StartIndex e Count definem o segmento de caracteres a medir. Um uso típico é passar o índice de correspondência retornado por FindFirst ou FindNext como StartIndex, e o comprimento da string de busca como Count, para obter retângulos de destaque para um resultado de busca
Os retângulos retornados ficam armazenados em um buffer interno e permanecem válidos até a próxima chamada a RectangleCount. Recupere cada retângulo lendo a propriedade Rectangle[Index] com Index no intervalo de 0 a RectangleCount - 1. Todas as coordenadas estão em unidades de espaço do usuário PDF (pontos, origem no canto inferior esquerdo)
Para uma contagem simples de todos os caracteres da página use CharacterCount; para descobrir onde um caractere específico está na 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;