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;