function FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer;
| Text | WString. La cadena de texto Unicode que se buscará en la página actual |
| Options | TSearchOptions. 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 |
| StartIndex | Integer. 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 |
| DirectionUp | Boolean. 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 |
-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 reinicializarlaFindFirst 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
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;