function DeviceToPage(X, Y, Left, Top, Width, Height: Integer; Rotation: TRotation; out PageX, PageY: Double): Boolean;
| X, Y | Integer. إحداثيات فضاء الجهاز للنقطة المطلوب تحويلها (بكسل الشاشة، الأصل عند أعلى اليسار). |
| Left, Top, Width, Height | Integer. مستطيل التصيير الذي مُرِّر إلى استدعاء RenderPage المقابل. |
| Rotation | TRotation. دوران الصفحة المستخدم عند التصيير. يجب أن يطابق القيمة المُمرَّرة إلى RenderPage. |
| PageX, PageY | Double. معاملات إخراج تستقبل إحداثيات فضاء مستخدم PDF المحوَّلة (الأصل عند أسفل اليسار، الوحدات بالنقاط). |
True إذا نجح التحويل، أو False إذا فشل (مثلًا، إذا لم تُحمَّل أي صفحة).يحوِّل نقطة من فضاء الجهاز (بكسل الشاشة) إلى فضاء مستخدم PDF (نقاط). استخدم هذه الطريقة لترجمة موضع نقرة فأرة على صفحة مُصيَّرة مرة أخرى إلى الموضع المقابل على صفحة PDF.
لفضاء مستخدم PDF أصله عند ركن أسفل يسار الصفحة، مع اتجاه المحور Y لأعلى. ولفضاء الجهاز أصله عند ركن أعلى يسار مستطيل التصيير، مع اتجاه المحور Y لأسفل.
يجب أن تطابق المعاملات Left و Top و Width و Height و Rotation تمامًا ما مُرِّر إلى استدعاء RenderPage الذي أنتج الصورة التي يُنقر عليها.
// Translate a mouse click on the painted page to PDF coordinates
procedure TForm1.PdfPanelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
PageX, PageY: Double;
begin
if Pdf.DeviceToPage(X, Y, 0, 0, PdfPanel.Width, PdfPanel.Height,
ro0, PageX, PageY) then
StatusBar1.SimpleText := Format('Page pos: %.1f, %.1f pt', [PageX, PageY]);
end;