PDFium Delphi Component Docs

FindFirst metod

Component: TPdf  ·  Unit: PDFium
Pokreće pretragu navedenog teksta. StartIndex je zasnovan na nuli, -1 znači kraj stranice. Parametar DirectionUp određuje smer ove operacije pretrage

Syntax

function FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer;

TextWString. Unicode tekstualni string koji se traži na trenutnoj strani
OptionsTSearchOptions. Skup TSearchOption zastavica koje kontrolišu ponašanje poklapanja. Podržane zastavice su soMatchCase (poklapanje osetljivo na velika i mala slova) i soMatchWholeWord (samo poklapanje celih reči). Prosledite [] za pretragu podstringa neosetljivu na velika i mala slova
StartIndexInteger. Indeks znaka zasnovan na nuli od kog pretraga počinje. Prosledite -1 da biste krenuli od poslednjeg znaka na strani (korisno kada je DirectionUp False). Podrazumevano je 0
DirectionUpBoolean. Određuje početni smer pretrage. True (podrazumevano) traži od StartIndex ka kraju strane; False traži ka početku. Naknadni pozivi FindNext uvek se kreću napred; FindPrevious se uvek kreće unazad

Return Value

Indeks znaka prvog poklapanja zasnovan na nuli, ili -1 ako poklapanje nije pronađeno. Interni handle pretrage se zadržava da bi naknadni pozivi FindNext ili FindPrevious mogli da nastave pretragu bez ponovne inicijalizacije

Description

FindFirst započinje pretragu celog teksta na trenutno učitanoj strani PDF-a. Prihvata Unicode string za pretragu zajedno sa opcionalnim zastavicama poklapanja, početnom pozicijom znaka i nagoveštajem smera. Pri uspehu vraća indeks znaka prvog poklapanja zasnovan na nuli i čuva interni handle pretrage koji ponovo koriste naknadni pozivi FindNext i FindPrevious. Vraća -1 kada tekst nije pronađen

Parametar StartIndex omogućava vam da započnete pretragu sa bilo koje pozicije znaka umesto uvek sa vrha strane. Prosledite 0 (podrazumevano) da krenete od samog prvog znaka, ili prosledite -1 da se usidrite na poslednjem znaku — zgodno kada izvodite obrnutu pretragu sa DirectionUp = False

Koristite parametar Options za preciziranje ponašanja poklapanja. soMatchCase omogućava poređenje osetljivo na velika i mala slova; soMatchWholeWord ograničava poklapanja samo na cele reči. Obe zastavice se mogu kombinovati. Prosleđivanje praznog skupa [] izvodi pretragu podstringa neosetljivu na velika i mala slova

Kada jednom pronađete poklapanje, pozovite RectangleCount sa vraćenim indeksom i poznatom dužinom poklapanja da biste dohvatili granične pravougaonike poklopljenog teksta na strani — korisno za isticanje rezultata pretrage u pregledaču

Example

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;

See Also

FindNext, FindPrevious, Find, CharacterIndexAtPos, CharacterCount, RectangleCount, Text