PDFium Delphi Component Docs

RectangleCount Método

Componente: TPdf  ·  Unidad: PDFium
Cuenta la cantidad de áreas rectangulares ocupadas por un segmento de texto. La función combina automáticamente cajas pequeñas de caracteres en una mayor cuando 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. Índice basado en 0 del primer carácter del segmento a medir. Su valor predeterminado es 0
CountInteger. 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

Return Value

Cantidad de rectángulos delimitadores combinados que cubren el segmento de caracteres especificado. Después de esta llamada, cada rectángulo es accesible mediante la propiedad indexada desde Rectangle[0] hasta Rectangle[RectangleCount - 1]

Description

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

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];
      // 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;

See Also

Rectangle, FindFirst, CharacterCount, CharacterIndexAtPos, Text