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