PDFium Delphi Component Docs

FindFirst método

Componente: TPdf  ·  Unidad: PDFium
Inicia una búsqueda del texto especificado. StartIndex usa base 0, -1 apunta al final de la página. El parámetro DirectionUp determina la dirección de esta operación de búsqueda

Syntax

function FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer;

TextWString. La cadena de texto Unicode que se buscará en la página actual
OptionsTSearchOptions. Un conjunto de indicadores TSearchOption que controlan el comportamiento de coincidencia. Los indicadores admitidos son soMatchCase (coincidencia con distinción de mayúsculas y minúsculas) y soMatchWholeWord (solo coincidencia de palabra completa). Pase [] para una búsqueda de subcadena sin distinción de mayúsculas y minúsculas
StartIndexInteger. El índice de caracteres basado en cero en el que comienza la búsqueda. Pase -1 para comenzar desde el último carácter de la página (útil cuando DirectionUp es False). Su valor predeterminado es 0
DirectionUpBoolean. Determina la dirección inicial de la búsqueda. True (predeterminado) busca desde StartIndex hacia el final de la página; False busca hacia el principio. Las llamadas posteriores a FindNext siempre avanzan; FindPrevious siempre retrocede

Return Value

El índice de caracteres de base 0 de la primera coincidencia, o -1 si no se encuentra ninguna. El manejador de búsqueda interno se conserva para que las llamadas posteriores a FindNext o FindPrevious puedan continuar la búsqueda sin reinicializarla

Description

FindFirst inicia una búsqueda de texto completo en la página del PDF cargada actualmente. Acepta una cadena de búsqueda Unicode junto con indicadores de coincidencia opcionales, una posición de carácter inicial y una indicación de dirección. Si tiene éxito, devuelve el índice de caracteres basado en cero de la primera coincidencia y almacena un manejador de búsqueda interno que reutilizan las llamadas posteriores a FindNext y FindPrevious. Devuelve -1 cuando no se encuentra el texto

El parámetro StartIndex permite comenzar la búsqueda en cualquier posición de carácter en lugar de siempre desde el principio de la página. Pase 0 (el valor predeterminado) para comenzar desde el primer carácter, o pase -1 para anclar en el último carácter — conveniente al realizar una búsqueda inversa con DirectionUp = False

Use el parámetro Options para refinar el comportamiento de coincidencia. soMatchCase activa una comparación con distinción de mayúsculas y minúsculas; soMatchWholeWord restringe las coincidencias solo a palabras completas. Ambos indicadores pueden combinarse. Pasar un conjunto vacío [] realiza una búsqueda de subcadena sin distinción de mayúsculas y minúsculas

Una vez encontrada una coincidencia, llame a RectangleCount con el índice devuelto y la longitud conocida de la coincidencia para recuperar los rectángulos delimitadores del texto coincidente en la página — útil para resaltar los resultados de búsqueda en un visor

Example

var
  Idx, MatchLen, R, I: Integer;
  Rect: TPdfRectangle;
begin
  Pdf1.PageIndex := 0;
  MatchLen := Length('invoice');
  Idx := Pdf1.FindFirst('invoice', [], 0, True);
  while Idx >= 0 do
  begin
    // Retrieve bounding rectangles for the matched text
    R := Pdf1.RectangleCount(Idx, MatchLen);
    for I := 0 to R - 1 do
    begin
      Rect := Pdf1.Rectangle[I];
      Memo1.Lines.Add(Format('Match at char %d, rect [%.1f,%.1f,%.1f,%.1f]',
        [Idx, Rect.Left, Rect.Top, Rect.Right, Rect.Bottom]));
    end;
    Idx := Pdf1.FindNext;
  end;
end;

See Also

FindNext, FindPrevious, Find, CharacterIndexAtPos, CharacterCount, RectangleCount, Text