PDFium Delphi Component Docs

DeviceToPage метод

Component: TPdf  ·  Unit: PDFium
Перетворює координати точки з простору пристрою у координати сторінки PDF

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