StartIndex is gebaseerd op 0, -1 staat voor het einde van de pagina. De parameter DirectionUp bepaalt de richting van deze zoekactiefunction FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer;
| Text | WString. De Unicode-teksttekenreeks waarnaar op de huidige pagina wordt gezocht |
| Options | TSearchOptions. Een set TSearchOption-vlaggen die het overeenkomstgedrag bepalen. Ondersteunde vlaggen zijn soMatchCase (hoofdlettergevoelige vergelijking) en soMatchWholeWord (alleen volledige woorden). Geef [] door voor een niet-hoofdlettergevoelige zoekactie naar een deel van een woord |
| StartIndex | Integer. De tekenindex op basis van 0 waarop de zoekactie begint. Geef -1 door om te starten vanaf het laatste teken op de pagina (handig wanneer DirectionUp False is). Standaard is 0 |
| DirectionUp | Boolean. Bepaalt de initiƫle zoekrichting. True (standaard) zoekt vanaf StartIndex naar het einde van de pagina; False zoekt naar het begin. Latere aanroepen van FindNext gaan altijd vooruit; FindPrevious gaat altijd terug |
-1 als geen treffer wordt gevonden. De interne zoekhandle blijft behouden zodat latere aanroepen van FindNext of FindPrevious de zoekactie zonder herinitialisatie kunnen voortzettenFindFirst start een volledige-tekstzoekactie op de momenteel geladen PDF-pagina. De methode accepteert een Unicode-zoektekenreeks samen met optionele overeenkomstvlaggen, een beginpositie voor het teken en een richtinghint. Bij succes geeft zij de tekenindex op basis van 0 van de eerste treffer terug en slaat zij een interne zoekhandle op die opnieuw wordt gebruikt door latere aanroepen van FindNext en FindPrevious. Geeft -1 terug wanneer de tekst niet wordt gevonden
Met de parameter StartIndex kunt u de zoekactie op elke tekenpositie laten beginnen in plaats van altijd vanaf de bovenkant van de pagina. Geef 0 door (de standaardwaarde) om vanaf het allereerste teken te beginnen, of geef -1 door om aan het laatste teken te verankeren — handig bij een omgekeerde zoekactie met DirectionUp = False
Gebruik de parameter Options om het overeenkomstgedrag te verfijnen. soMatchCase schakelt een hoofdlettergevoelige vergelijking in; soMatchWholeWord beperkt treffers tot alleen volledige woorden. Beide vlaggen mogen worden gecombineerd. Een lege set [] doorgeven voert een niet-hoofdlettergevoelige zoekactie naar een deel van een woord uit
Zodra een treffer is gevonden, roept u RectangleCount aan met de teruggegeven index en de bekende trefferlengte om de begrenzingsrechthoeken van de gevonden tekst op de pagina op te halen — handig om zoekresultaten in een viewer te markeren
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;