PDFium Delphi Component Docs

FindFirst Metod

Component: TPdf  ·  Unit: PDFium
Starta en sökning av den angivna texten. StartIndex är nollbaserad, -1 betyder slutet av sidan. Parametern DirectionUp avgör sökningsriktningen

Syntax

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

TextWString. Unicode-textsträngen som ska sökas efter på den aktuella sidan
OptionsTSearchOptions. 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
StartIndexInteger. 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
DirectionUpBoolean. 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

Return Value

Det nollbaserade teckenindexet för den första träffen, eller -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 ominitiering

Description

FindFirst 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

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