PDFium Delphi Component Docs

DeviceToPage Метод

Компонент: TPdf  ·  Модуль: PDFium
Преобразует экранную координату точки в координату страницы

Syntax

function DeviceToPage(X, Y, Left, Top, Width, Height: Integer; Rotation: TRotation; out PageX, PageY: Double): Boolean;

X, YInteger. Координаты точки в пространстве устройства (экранные пиксели, начало в левом верхнем углу)
Left, Top, Width, HeightInteger. Прямоугольник отрисовки, который передавался в соответствующий вызов RenderPage
RotationTRotation. Поворот страницы, использованный при отрисовке. Должен совпадать со значением, переданным в RenderPage
PageX, PageYDouble. Выходные параметры, принимающие преобразованные пользовательские координаты PDF (начало внизу слева, единицы — пункты)

Return Value

Возвращает True, если преобразование удалось, или False, если оно не удалось, например когда страница не загружена

Description

Преобразует точку из пространства устройства (экранные пиксели) в пользовательское пространство PDF (пункты). Метод переводит позицию клика мыши по отрендеренной странице обратно в соответствующую позицию на PDF-странице

В пользовательском пространстве PDF начало в левом нижнем углу страницы, ось Y направлена вверх. В пространстве устройства начало в левом верхнем углу прямоугольника отрисовки, ось Y направлена вниз

Параметры Left, Top, Width, Height и Rotation должны в точности совпадать с тем, что передавалось в вызов RenderPage, породивший картинку, по которой кликнули

Example

// 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;

See Also

PageToDevice, RenderPage, PageWidth, PageHeight