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 informa la prueba de posicionamiento nativa, o -1 cuando ningún enlace lo cubre |
Compañero de LinkAtPoint: en lugar de una respuesta simple de sí/no, la prueba de posicionamiento nativa (FPDFLink_GetLinkZOrderAtPoint) devuelve el orden Z del enlace encontrado en la coordenada. Cuando varios enlaces se superponen, el orden Z identifica sobre cuál debe actuar el visor en esa posición
La prueba se ejecuta dentro de PDFium, por lo que respeta la geometría real de puntos cuádruples de las anotaciones de enlace en lugar de los cuadros delimitadores expuestos por LinkAnnotation — un enlace que sigue un texto ajustado 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 antes la posición del ratón 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;