PDFium Component Docs

FindFirst Methode

Component: TPdf  ·  Unit: PDFium
Start een zoekopdracht naar de opgegeven tekst. StartIndex is gebaseerd op 0, -1 staat voor het einde van de pagina. De parameter DirectionUp bepaalt de richting van deze zoekactie

Syntax

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

TextWString. De Unicode-tekenreeks waarnaar op de huidige pagina wordt gezocht
OptionsTSearchOptions. Een verzameling TSearchOption-vlaggen die het zoekgedrag bepalen. Ondersteunde vlaggen zijn soMatchCase (hoofdlettergevoelige overeenkomst) en soMatchWholeWord (alleen hele woorden). Geef [] door voor een niet-hoofdlettergevoelige deelstringzoekopdracht
StartIndexInteger. De op nul gebaseerde tekenindex waar de zoekopdracht begint. Geef -1 door om vanaf het laatste teken op de pagina te beginnen (handig wanneer DirectionUp False is). Standaard 0
DirectionUpBoolean. Bepaalt de oorspronkelijke zoekrichting. True (standaard) zoekt vanaf StartIndex naar het einde van de pagina; False zoekt naar het begin. Latere aanroepen van FindNext bewegen altijd vooruit; FindPrevious beweegt altijd achteruit

Return Value

De tekenindex op basis van 0 van de eerste treffer, of -1 als geen treffer wordt gevonden. De interne zoekhandle blijft behouden zodat latere aanroepen van FindNext of FindPrevious de zoekactie zonder herinitialisatie kunnen voortzetten

Description

FindFirst start een zoekopdracht in de volledige tekst op de momenteel geladen PDF-pagina. De methode accepteert een Unicode-zoektekenreeks samen met optionele zoekvlaggen, een beginpositie voor tekens en een richtingshint. Bij succes wordt de op nul gebaseerde tekenindex van de eerste treffer teruggegeven en wordt een interne zoekhandle bewaard die door latere aanroepen van FindNext en FindPrevious wordt hergebruikt. Geeft -1 terug wanneer de tekst niet wordt gevonden

Met de parameter StartIndex kunt u de zoekopdracht op elke tekenpositie laten beginnen in plaats van altijd bovenaan de pagina. Geef 0 (de standaardwaarde) door om vanaf het allereerste teken te beginnen, of -1 om op het laatste teken te ankeren — handig bij een omgekeerde zoekopdracht met DirectionUp = False

Gebruik de parameter Options om het zoekgedrag te verfijnen. soMatchCase schakelt hoofdlettergevoelige vergelijking in; soMatchWholeWord beperkt treffers tot hele woorden. Beide vlaggen kunnen worden gecombineerd. Een lege verzameling [] doorgeven voert een niet-hoofdlettergevoelige deelstringzoekopdracht 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 — nuttig voor het markeren van zoekresultaten in een viewer

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
    // Haal begrenzingsrechthoeken op voor de gevonden tekst
    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