PDFium Delphi Component 文件

LinkZOrderAtPoint 方法

组件: TPdf  ·  单元: PDFium
对页面空间坐标执行原生链接注释命中测试,返回覆盖该点的链接 z-order

语法

function LinkZOrderAtPoint(X, Y: Double): Integer;

X, YDouble。以 PDF 页面单位表示的点,原点位于页面左下角
ResultInteger。由原生命中测试报告的覆盖该点的链接 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;

参见

LinkAtPoint, LinkAnnotation, LinkAnnotationCount, FormFieldZOrderAtPoint, DeviceToPage