function LinkZOrderAtPoint(X, Y: Double): Integer;
| X, Y | Double. Punto en unidades de página PDF, con el origen en la esquina inferior izquierda de la página |
| Result | Integer. El orden z del enlace que cubre el punto según lo reporta la prueba de impacto nativa, o -1 cuando ningún enlace lo cubre |
Compañero de LinkAtPoint: en lugar de una respuesta de sí/no, la prueba de impacto nativa (FPDFLink_GetLinkZOrderAtPoint) devuelve el orden z del enlace encontrado en la coordenada. Cuando varios enlaces se superponen, el orden z identifica a cuál debe atender el visor en esa posición
La prueba se ejecuta dentro de PDFium, por lo que respeta la geometría real de cuádruples puntos de las anotaciones de enlace en lugar de los cuadros delimitadores expuestos por LinkAnnotation — un enlace que sigue texto ajustado por líneas se empareja según su forma real
Un resultado de -1 significa que el punto no está sobre ningún enlace. La llamada requiere que la página actual esté activa. Convierta primero la posición del mouse a unidades de página con 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;