function PageToDevice(PageX, PageY: Double; Left, Top, Width, Height: Integer; Rotation: TRotation; out X, Y: Integer): Boolean;
| PageX, PageY | Double. Пользовательские координаты PDF для преобразования (начало внизу слева, единицы — пункты) |
| Left, Top, Width, Height | Integer. Прямоугольник отрисовки, который передавался в соответствующий вызов RenderPage |
| Rotation | TRotation. Поворот страницы, использованный при отрисовке. Должен совпадать со значением, переданным в RenderPage |
| X, Y | Integer. Выходные параметры, принимающие преобразованные пиксельные координаты в пространстве устройства (начало в левом верхнем углу) |
True, если преобразование удалось, или False, если оно не удалось (например, если страница не загружена)Преобразует точку из пользовательского пространства PDF (пункты) в пространство устройства (экранные пиксели). Метод определяет, где известная позиция в координатах PDF ложится на отрендеренное изображение — например, чтобы разместить оверлей аннотации или подсвечивающий прямоугольник
В пользовательском пространстве PDF начало в левом нижнем углу страницы, ось Y направлена вверх. В пространстве устройства начало в левом верхнем углу прямоугольника отрисовки, ось Y направлена вниз
Параметры Left, Top, Width, Height и Rotation должны в точности совпадать с тем, что передавалось в вызов RenderPage, породивший картинку, на которую выполняется отображение
// Draw a marker on screen at a known PDF position
var
ScreenX, ScreenY: Integer;
begin
if Pdf.PageToDevice(100.0, 200.0, 0, 0,
PdfPanel.Width, PdfPanel.Height, ro0, ScreenX, ScreenY) then
begin
Canvas.Pen.Color := clRed;
Canvas.Ellipse(ScreenX - 4, ScreenY - 4, ScreenX + 4, ScreenY + 4);
end;
end;