function FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer;
| Text | WString. Unicode teksto eilutė, kurios ieškoma dabartiniame puslapyje |
| Options | TSearchOptions. TSearchOption vėliavėlių rinkinys, valdantis atitikimo elgseną. Palaikomos vėliavėlės yra soMatchCase (atitikimas jautrus raidžių dydžiui) ir soMatchWholeWord (tik vientisų žodžių atitikimas). Perduokite [] raidžių dydžiui nesvarbiai poeilutės paieškai |
| StartIndex | Integer. Nuo nulio numeruojamas simbolių indeksas, nuo kurio prasideda paieška. Perduokite -1, norėdami pradėti nuo paskutinio puslapio simbolio (naudinga, kai DirectionUp yra False). Numatytoji reikšmė 0 |
| DirectionUp | Boolean. Nustato pradinę paieškos kryptį. True (numatytoji) ieško nuo StartIndex puslapio pabaigos link; False ieško pradžios link. Vėlesni FindNext kvietimai visada juda pirmyn; FindPrevious visada juda atgal |
-1, jei atitikmuo nerastas. Vidinis paieškos deskriptorius išlaikomas, kad vėlesni FindNext ar FindPrevious kvietimai galėtų tęsti paiešką jos iš naujo neinicializuodamiFindFirst pradeda pilno teksto paiešką šiuo metu įkeltame PDF puslapyje. Jis priima Unicode paieškos eilutę su pasirinktinėmis atitikimo vėliavėlėmis, pradine simbolio padėtimi ir krypties užuomina. Sėkmės atveju grąžina nuo nulio numeruojamą pirmo atitikmens simbolių indeksą ir saugo vidinį paieškos deskriptorių, kurį pakartotinai naudoja vėlesni FindNext ir FindPrevious kvietimai. Tekstui neradus grąžina -1
Parametras StartIndex leidžia pradėti paiešką bet kurioje simbolio padėtyje, o ne visada nuo puslapio viršaus. Perduokite 0 (numatytąją), jei norite pradėti nuo paties pirmo simbolio, arba -1, kad prisitvirtintumėte prie paskutinio simbolio — patogu atliekant atvirkštinę paiešką su DirectionUp = False
Naudokite parametrą Options atitikimo elgsenai patikslinti. soMatchCase įjungia raidžių dydžiui jautrų palyginimą; soMatchWholeWord riboja atitikmenis tik iki vientisų žodžių. Abi vėliavėlės gali būti derinamos. Perdavus tuščią rinkinį [] atliekama raidžių dydžiui nesvarbi poeilutės paieška
Radus atitikmenį kvieskite RectangleCount su grąžintu indeksu ir žinomu atitikmens ilgiu, kad gautumėte atitikusio teksto apibrėžiančius stačiakampius puslapyje — naudinga paryškinant paieškos rezultatus peržiūros programoje
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;