PDFium Delphi Component Docs

FindFirst metodas

Komponentas: TPdf  ·  Modulis: PDFium
Pradeda nurodyto teksto paiešką. StartIndex yra nuliniu pagrindu, -1 reiškia puslapio pabaigą. DirectionUp parametras nustato šios paieškos kryptį

Syntax

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

TextWString. Unicode teksto eilutė, kurios ieškoma dabartiniame puslapyje
OptionsTSearchOptions. 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
StartIndexInteger. 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
DirectionUpBoolean. 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

Return Value

Nuo nulio numeruojamas pirmo atitikmens simbolių indeksas arba -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 neinicializuodami

Description

FindFirst 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

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

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