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;