PDFium Delphi Component Docs

DeviceToPage 메서드

컴포넌트: TPdf  ·  유닛: PDFium
화면 point의 device coordinate를 page coordinate로 변환합니다

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를 반환합니다(예: page가 로드되지 않은 경우)

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