function DeviceToPage(X, Y, Left, Top, Width, Height: Integer; Rotation: TRotation; out PageX, PageY: Double): Boolean;
| X, Y | Integer. 변환할 점의 디바이스 공간 좌표입니다(화면 픽셀, 원점은 왼쪽 위) |
| Left, Top, Width, Height | Integer. 대응하는 RenderPage 호출에 넘겼던 렌더링 사각형입니다 |
| Rotation | TRotation. 렌더링 때 쓴 페이지 회전입니다. RenderPage에 넘긴 값과 일치해야 합니다 |
| PageX, PageY | Double. 변환된 PDF 사용자 공간 좌표를 받는 출력 파라미터입니다(원점은 왼쪽 아래, 단위는 포인트) |
True를, 실패하면 False를 반환합니다(예: page가 로드되지 않은 경우)디바이스 공간(화면 픽셀)의 점을 PDF 사용자 공간(포인트)으로 변환합니다. 렌더링된 페이지 위의 마우스 클릭 위치를 PDF 페이지의 대응 위치로 바꿀 때 이 메서드를 사용하세요
PDF 사용자 공간의 원점은 페이지 왼쪽 아래이고 Y축은 위를 향합니다. 디바이스 공간의 원점은 렌더링 사각형 왼쪽 위이며 Y축은 아래를 향합니다
Left, Top, Width, Height, Rotation 파라미터는 클릭된 이미지를 만든 RenderPage 호출에 넘긴 값과 정확히 일치해야 합니다
// 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;