function FindFirst(const Text: WString; Options: TSearchOptions = []; StartIndex: Integer = 0; DirectionUp: Boolean = True): Integer;
| Text | WString. رشتهٔ متن Unicode برای جستوجو در صفحهٔ فعلی |
| Options | TSearchOptions. مجموعهای از پرچمهای TSearchOption که رفتار تطبیق را کنترل میکنند. پرچمهای پشتیبانیشده soMatchCase (تطبیق حساس به بزرگی و کوچکی حروف) و soMatchWholeWord (فقط تطبیق واژهٔ کامل) هستند. برای جستوجوی غیرحساس به بزرگی حروف و مبتنی بر زیررشته [] را پاس دهید |
| StartIndex | Integer. اندیس نویسهٔ صفرمبنا که جستوجو از آن آغاز میشود. برای شروع از آخرین نویسهٔ صفحه -1 را پاس دهید (کاربردی وقتی DirectionUp برابر False است). پیشفرض 0 است |
| DirectionUp | Boolean. جهت آغازین جستوجو را تعیین میکند. True (پیشفرض) از StartIndex به سمت انتهای صفحه جستوجو میکند؛ False به سمت آغاز جستوجو میکند. فراخوانیهای بعدی FindNext همیشه به جلو حرکت میکنند؛ FindPrevious همیشه به عقب حرکت میکند |
-1 اگر هیچ تطبیقی یافت نشود. هندل جستوجوی داخلی نگه داشته میشود تا فراخوانیهای بعدی FindNext یا FindPrevious بتوانند جستوجو را بدون مقداردهی دوباره ادامه دهندFindFirst جستوجوی تماممتن را روی صفحهٔ PDF بارگذاریشدهٔ فعلی آغاز میکند. رشتهٔ جستوجوی Unicode را همراه با پرچمهای تطبیق اختیاری، موقعیت نویسهٔ آغازین و اشارهٔ جهت میپذیرد. در صورت موفقیت اندیس نویسهٔ صفرمبنای نخستین تطبیق را برمیگرداند و یک هندل جستوجوی داخلی ذخیره میکند که در فراخوانیهای بعدی FindNext و FindPrevious بازاستفاده میشود. وقتی متن یافت نشود -1 برمیگرداند.
پارامتر StartIndex به شما اجازه میدهد جستوجو را در هر موقعیت نویسهای آغاز کنید نه همیشه از بالای صفحه. برای شروع از همان نخستین نویسه 0 (پیشفرض) را پاس دهید، یا برای لنگرشدن در آخرین نویسه -1 را پاس دهید — که هنگام انجام جستوجوی معکوس با DirectionUp = False کارآمد است
از پارامتر Options برای تنظیم دقیق رفتار تطبیق استفاده کنید. soMatchCase مقایسهٔ حساس به بزرگی و کوچکی حروف را فعال میکند؛ soMatchWholeWord تطبیقها را فقط به واژههای کامل محدود میکند. هر دو پرچم را میتوان ترکیب کرد. پاسدادن مجموعهٔ خالی [] یک جستوجوی زیررشتهای غیرحساس به بزرگی حروف انجام میدهد
پس از یافتن یک تطبیق، RectangleCount را با اندیس بازگشتی و طول شناختهشدهٔ تطبیق فراخوانی کنید تا مستطیلهای محیطی متن تطبیقیافته روی صفحه را بازیابی کنید — برای برجستهسازی نتایج جستوجو در یک نمایشگر کارآمد است
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;