PDFium Delphi Component Docs

RectangleCount Método

Componente: TPdf  ·  Unidad: PDFium
Cuenta el número de áreas rectangulares ocupadas por un segmento de texto. La función fusiona automáticamente los pequeños cuadros de caracteres en uno mayor si esos caracteres están en la misma línea y usan la misma configuración de fuente

Syntax

function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;

StartIndexInteger. El índice basado en 0 del primer carácter del segmento a medir. El valor predeterminado es 0
CountInteger. 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

Return Value

Número de rectángulos de contorno fusionados que cubren el segmento de caracteres especificado. Después de esta llamada, cada rectángulo es accesible mediante la propiedad indexada Rectangle[0] hasta Rectangle[RectangleCount - 1]

Description

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

Example

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;

See Also

Rectangle, FindFirst, CharacterCount, CharacterIndexAtPos, Text