PDFium Delphi Component Docs

FindFirst metoda

Komponenta: TPdf  ·  Jedinica: PDFium
Započinje pretraživanje navedenog teksta. StartIndex je nultiindeksiran, -1 je za kraj stranice. Parametar DirectionUp određuje smjer ove operacije pretraživanja

Sintaksa

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

TextWString. Unicode tekstualni niz koji se traži na trenutačnoj stranici
OptionsTSearchOptions. Skup zastavica TSearchOption koje upravljaju ponašanjem podudaranja. Podržane zastavice su soMatchCase (podudaranje uz razlikovanje velikih i malih slova) i soMatchWholeWord (podudaranje samo cijelih riječi). Proslijedite [] za pretragu podniza bez razlikovanja velikih i malih slova
StartIndexInteger. Indeks znaka s početkom od nule na kojem pretraga započinje. Proslijedite -1 za početak od zadnjeg znaka na stranici (korisno kada je DirectionUp False). Zadano je 0
DirectionUpBoolean. Određuje početni smjer pretrage. True (zadano) traži od StartIndex prema kraju stranice; False traži prema početku. Kasniji pozivi FindNext uvijek se pomiču naprijed; FindPrevious uvijek unatrag

Povratna vrijednost

Nultiindeksirani indeks znaka prvog podudaranja, ili -1 ako nije pronađeno podudaranje. Interni handler pretraživanja zadržava se kako bi kasniji pozivi FindNext ili FindPrevious mogli nastaviti pretraživanje bez ponovne inicijalizacije

Opis

FindFirst pokreće pretragu punog teksta na trenutačno učitanoj PDF stranici. Prihvaća Unicode niz za pretragu zajedno s neobaveznim zastavicama podudaranja, početnim položajem znaka i smjernicom smjera. Pri uspjehu vraća indeks znaka prvog podudaranja s početkom od nule i pohranjuje interni rukohvat pretrage koji ponovno koriste kasniji pozivi FindNext i FindPrevious. Vraća -1 kada tekst nije pronađen

Parametar StartIndex omogućuje započinjanje pretrage na bilo kojem položaju znaka umjesto uvijek od vrha stranice. Proslijedite 0 (zadano) za početak od samog prvog znaka, ili -1 za sidrenje na zadnjem znaku — zgodno pri izvođenju obrnute pretrage s DirectionUp = False

Koristite parametar Options za podešavanje ponašanja podudaranja. soMatchCase omogućuje usporedbu uz razlikovanje velikih i malih slova; soMatchWholeWord ograničava podudaranja samo na cijele riječi. Obje zastavice se mogu kombinirati. Proslijeđivanje praznog skupa [] izvodi pretragu podniza bez razlikovanja velikih i malih slova

Nakon što je podudaranje pronađeno, pozovite RectangleCount s vraćenim indeksom i poznatom duljinom podudaranja za dohvat ograničavajućih pravokutnika podudaranog teksta na stranici — korisno za isticanje rezultata pretrage u pregledniku

Primjer

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;

Vidi također

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