StartIndex je od nuly, -1 znamená koniec strany. Parameter DirectionUp určuje smer tejto vyhľadávacej operáciefunction FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer;
| Text | WString. Unicode textový reťazec, ktorý sa má na aktuálnej strane vyhľadať. |
| Options | TSearchOptions. Množina príznakov TSearchOption, ktoré riadia správanie zhody. Podporované príznaky sú soMatchCase (zhoda s rozlišovaním veľkosti písmen) a soMatchWholeWord (iba zhoda celého slova). Odovzdajte [] pre vyhľadávanie podreťazca bez rozlišovania veľkosti písmen. |
| StartIndex | Integer. Index znaku so základom 0, ktorým sa začína vyhľadávanie. Odovzdajte -1 pre začiatok od posledného znaku na strane (užitočné, keď je DirectionUp False). Predvolené je 0. |
| DirectionUp | Boolean. Určuje počiatočný smer vyhľadávanie. True (predvolené) vyhľadáva od StartIndex smerom ku koncu strany; False smerom k začiatku. Následné volania FindNext sa vždy pohybujú vpred; FindPrevious sa vždy pohybuje dozadu. |
-1, ak sa zhoda nenájde. Interný handle vyhľadávanie sa zachová, takže následné volania FindNext alebo FindPrevious môžu pokračovať vo vyhľadávaní bez reinicializácie.FindFirst iniciuje fulltextové vyhľadávanie na aktuálne načítanej strane PDF. Prijíma Unicode vyhľadávací reťazec spolu s voliteľnými príznakmi zhody, počiatočnou pozíciou znaku a nápovedou smeru. Pri úspechu vráti index prvej zhody so základom 0 a uloží interný handle vyhľadávanie, ktorý sa znovu použije následnými volaniami FindNext a FindPrevious. Vráti -1, keď sa text nenájde.
Parameter StartIndex umožňuje začať vyhľadávanie na akejkoľvek pozícii znaku namiesto vždy od začiatku strany. Odovzdajte 0 (predvolené) pre začiatok od úplne prvého znaku alebo odovzdajte -1 pre ukotvenie na poslednom znaku — vhodné pri reverznom vyhľadávaní s DirectionUp = False.
Parameter Options použite na spresnenie správania zhody. soMatchCase umožňuje porovnávanie s rozlišovaním veľkosti písmen; soMatchWholeWord obmedzuje zhody iba na celé slová. Oba príznaky možno skombinovať. Odovzdanie prázdnej množiny [] vykoná vyhľadávanie podreťazca bez rozlišovania veľkosti písmen.
Keď sa nájde zhoda, zavolajte RectangleCount s vráteným indexom a známou dĺžkou zhody na získanie ohraničujúcich obdĺžnikov zodpovedajúceho textu na strane — užitočné pre zvýraznenie výsledkov vyhľadávanie v prehliadači.
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;