function FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer;
| Text | WString. String teks Unicode yang akan dicari pada halaman saat ini |
| Options | TSearchOptions. 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 |
| StartIndex | Integer. 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 |
| DirectionUp | Boolean. 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 |
-1 jika tidak ada kecocokan ditemukan. Handle pencarian internal dipertahankan sehingga panggilan berikutnya ke FindNext atau FindPrevious dapat melanjutkan pencarian tanpa reinisialisasiFindFirst 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
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;