function CharacterIndexAtPos(X, Y, ToleranceX, ToleranceY: Double): Integer;
-1 اگر هیچ نویسهای در ناحیهٔ تلورانس مشخص قرار نگیرد، یا -3 اگر خطای داخلی رخ دهد (برای نمونه، هنگامی که هیچ صفحهای بارگذاری نشده باشد)CharacterIndexAtPos یک نقطه در مختصات فضای کاربری PDF را به اندیس نزدیکترین نویسه در صفحهٔ فعلی نگاشت میکند. این عملیات معکوس خواندن Character[Index] یا RectangleCount است: با داشتن یک موقعیت (مانند کلیک ماوس تبدیلشده به مختصات صفحه) مشخص میکند کاربر به کدام نویسه اشاره کرده است.
پارامترهای X و Y نقطهٔ پرسوجو را بر حسب واحدهای فضای کاربری PDF مشخص میکنند؛ مبدأ در گوشهٔ پایین-چپ صفحه است و Y به سمت بالا افزایش مییابد. پارامترهای ToleranceX و ToleranceY یک ناحیهٔ جستجوی مستطیلی حول نقطهٔ پرسوجو گسترش میدهند؛ هر نویسهای که جعبهٔ محیطیاش با آن ناحیه برخورد داشته باشد نامزد است
اگر هیچ نویسهای در ناحیهٔ تلورانس یافت نشود، تابع -1 برمیگرداند. مقدار بازگشتی -3 نشاندهندهٔ خطاست که معمولاً به این دلیل است که در حال حاضر هیچ صفحهای باز نیست. در صورت موفقیت، اندیس بازگشتی را میتوان مستقیماً به RectangleCount یا Character داد یا بهعنوان آرگومان StartIndex از FindFirst به کار برد
هنگام تبدیل مختصات صفحهنمایش (پیکسل) به مختصات فضای کاربری PDF، از عرض و ارتفاع صفحه به همراه سطح بزرگنمایی فعلی برای مقیاسبندی مناسب استفاده کنید
var
CharIdx: Integer;
PageX, PageY: Double;
begin
Pdf1.PageIndex := 0;
// PageX/PageY are already converted to PDF user-space units
PageX := 150.0;
PageY := 400.0;
CharIdx := Pdf1.CharacterIndexAtPos(PageX, PageY, 5.0, 5.0);
if CharIdx >= 0 then
ShowMessage('Character: ' + Pdf1.Character[CharIdx])
else if CharIdx = -1 then
ShowMessage('No character at that position')
else
ShowMessage('Error retrieving character');
end;