PDFium Delphi Component Docs

LinkZOrderAtPoint Метод

Компонент: TPdf  ·  Модуль: PDFium
Выполняет hit-тест координаты в пространстве страницы по нативным аннотациям-ссылкам и возвращает z-order ссылки, покрывающей эту точку

Syntax

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

X, YDouble. Точка в единицах страницы PDF с началом координат в левом нижнем углу страницы
ResultInteger. Z-order ссылки, покрывающей точку, как его сообщает нативный hit-тест, или -1, если точку не покрывает ни одна ссылка

Description

Спутник LinkAtPoint: вместо простого ответа «да/нет» нативный hit-тест (FPDFLink_GetLinkZOrderAtPoint) возвращает z-order ссылки, найденной в данной координате. Когда несколько ссылок перекрываются, z-order указывает, какую из них просмотрщик должен обработать в этой позиции

Тест выполняется внутри PDFium, поэтому учитывает фактическую геометрию quad-point аннотаций-ссылок, а не ограничивающие прямоугольники, которые открывает LinkAnnotation — ссылка, следующая за переносимым текстом, сопоставляется по своей реальной форме

Результат -1 означает, что точка не лежит ни на одной ссылке. Для вызова текущая страница должна быть активной. Сначала преобразуйте позицию мыши в единицы страницы через DeviceToPage

Remarks

Example

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;

See Also

LinkAtPoint, LinkAnnotation, LinkAnnotationCount, FormFieldZOrderAtPoint, DeviceToPage