function LinkZOrderAtPoint(X, Y: Double): Integer;
| X, Y | Double. PDF 페이지 단위의 점이며 원점은 페이지 왼쪽 아래 모서리입니다 |
| Result | Integer. 네이티브 hit-test가 보고한, 그 점을 덮는 링크의 z-order이며 링크가 없으면 -1입니다 |
LinkAtPoint의 짝입니다. 단순 예/아니오 답 대신 네이티브 hit-test(FPDFLink_GetLinkZOrderAtPoint)가 좌표에서 발견된 링크의 z-order를 반환합니다. 여러 링크가 겹칠 때 z-order는 그 위치에서 뷰어가 어떤 링크에 반응해야 하는지 알려줍니다
테스트는 PDFium 안에서 돌기 때문에 LinkAnnotation이 노출하는 경계 상자가 아니라 링크 주석의 실제 quad-point 지오메트리를 존중합니다. 줄바꿈된 텍스트를 따라가는 링크도 실제 모양으로 매칭됩니다
결과가 -1이면 그 점은 어떤 링크 위에도 있지 않다는 뜻입니다. 이 호출에는 현재 페이지가 활성 상태여야 합니다. 마우스 위치는 먼저 DeviceToPage로 페이지 단위로 변환하세요
var PX, PY: Double;
begin
if Pdf1.DeviceToPage(MouseX, MouseY, 0, 0, W, H, ro0, PX, PY) then
begin
Memo1.Lines.Add('Link z-order: ' + IntToStr(Pdf1.LinkZOrderAtPoint(PX, PY)));
// -1 means the point is not covered by any link
end;
end;