function FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer;
| Text | WString. Unicode-textsträngen som ska sökas efter på den aktuella sidan |
| Options | TSearchOptions. En mängd TSearchOption-flaggor som styr matchningsbeteendet. Flaggor som stöds är soMatchCase (skiftlägeskänslig matchning) och soMatchWholeWord (endast matchning av hela ord). Skicka [] för en skiftlägesokänslig delsträngssökning |
| StartIndex | Integer. Det nollbaserade teckenindex där sökningen börjar. Skicka -1 för att börja från sidans sista tecken (praktiskt när DirectionUp är False). Standardvärde är 0 |
| DirectionUp | Boolean. Avgör den inledande sökriktningen. True (standard) söker från StartIndex mot slutet av sidan; False söker mot början. Efterföljande anrop till FindNext rör sig alltid framåt; FindPrevious rör sig alltid bakåt |
-1 om ingen träff hittas. Det interna sökhandtaget behålls så att efterföljande anrop till FindNext eller FindPrevious kan fortsätta sökningen utan ominitieringFindFirst initierar en fulltextsökning på den för närvarande inlästa PDF-sidan. Metoden tar emot en Unicode-söksträng tillsammans med valfria matchningsflaggor, en startteckenposition och en riktningsantydan. Vid lyckat resultat returneras det nollbaserade teckenindexet för den första träffen och ett internt sökhandtag lagras som återanvänds av efterföljande anrop till FindNext och FindPrevious. Returnerar -1 när texten inte hittas
Parametern StartIndex låter dig börja sökningen vid valfri teckenposition i stället för alltid från sidans början. Skicka 0 (standardvärdet) för att börja från det allra första tecknet, eller skicka -1 för att förankra vid det sista tecknet — praktiskt vid en omvänd sökning med DirectionUp = False
Använd parametern Options för att förfina matchningsbeteendet. soMatchCase aktiverar en skiftlägeskänslig jämförelse; soMatchWholeWord begränsar träffar till endast hela ord. Båda flaggorna kan kombineras. Att skicka en tom mängd [] utför en skiftlägesokänslig delsträngssökning
När en träff har hittats anropar du RectangleCount med det returnerade indexet och den kända träfflängden för att hämta de omslutande rektanglarna för den matchade texten på sidan — användbart för att markera sökresultat i ett visningsprogram
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;