function LinkZOrderAtPoint(X, Y: Double): Integer;
| X, Y | Double。以 PDF 页面单位表示的点,原点位于页面左下角 |
| Result | Integer。由原生命中测试报告的覆盖该点的链接 z-order;没有链接覆盖该点时为 -1 |
LinkAtPoint 的姊妹方法:原生命中测试(FPDFLink_GetLinkZOrderAtPoint)不是简单的是/否回答,而是返回在该坐标处找到的链接的 z-order。当多个链接重叠时,z-order 标识查看器在该位置应当响应哪一个
该测试在 PDFium 内部运行,因此遵循链接注释真实的四边点(quad-point)几何,而不是 LinkAnnotation 公开的边界框 — 跟随折行文本的链接会按其真实形状匹配
结果为 -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 表示该点未被任何链接覆盖
end;
end;