PDFium Component Docs

FindFirst method

Component: TPdf  ·  Unit: PDFium
Memulai pencarian teks yang ditentukan. StartIndex berbasis 0, -1 dipakai untuk akhir halaman. Parameter DirectionUp menentukan arah operasi pencarian ini

Syntax

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

TextWString. String teks Unicode yang akan dicari pada halaman saat ini
OptionsTSearchOptions. Himpunan flag TSearchOption yang mengontrol perilaku pencocokan. Flag yang didukung adalah soMatchCase (pencocokan case-sensitive) dan soMatchWholeWord (pencocokan kata-penuh saja). Lewatkan [] untuk pencarian substring case-insensitive
StartIndexInteger. Indeks karakter berbasis-0 di mana pencarian dimulai. Lewatkan -1 untuk memulai dari karakter terakhir pada halaman (berguna ketika DirectionUp bernilai False). Default ke 0
DirectionUpBoolean. Menentukan arah pencarian awal. True (default) mencari dari StartIndex menuju akhir halaman; False mencari menuju awal. Panggilan berikutnya ke FindNext selalu maju; FindPrevious selalu mundur

Return Value

Indeks karakter berbasis-0 dari kecocokan pertama, atau -1 jika tidak ada kecocokan ditemukan. Handle pencarian internal dipertahankan sehingga panggilan berikutnya ke FindNext atau FindPrevious dapat melanjutkan pencarian tanpa reinisialisasi

Description

FindFirst memulai pencarian teks-penuh pada halaman PDF yang sedang dimuat. Ia menerima string pencarian Unicode bersama dengan flag pencocokan opsional, posisi karakter awal, dan petunjuk arah. Saat berhasil ia mengembalikan indeks karakter berbasis-0 dari kecocokan pertama dan menyimpan handle pencarian internal yang digunakan ulang oleh panggilan FindNext dan FindPrevious berikutnya. Mengembalikan -1 ketika teks tidak ditemukan

Parameter StartIndex memungkinkan Anda memulai pencarian pada posisi karakter apa pun alih-alih selalu dari atas halaman. Lewatkan 0 (default) untuk mulai dari karakter pertama, atau lewatkan -1 untuk berlabuh di karakter terakhir — nyaman ketika melakukan pencarian terbalik dengan DirectionUp = False

Gunakan parameter Options untuk menyempurnakan perilaku pencocokan. soMatchCase mengaktifkan perbandingan case-sensitive; soMatchWholeWord membatasi kecocokan ke kata penuh saja. Kedua flag dapat dikombinasikan. Meneruskan himpunan kosong [] melakukan pencarian substring case-insensitive

Setelah kecocokan ditemukan, panggil RectangleCount dengan indeks yang dikembalikan dan panjang kecocokan yang diketahui untuk mengambil persegi pembatas teks yang cocok pada halaman — berguna untuk menyorot hasil pencarian di penampil

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