Ссылки бывают двух видов, а инструменты обычно видят один
Гиперссылка в PDF — это аннотация-ссылка: прямоугольник на странице с прикреплённым действием. Все инструменты, которые «извлекают ссылки», читают именно их. Но в документе есть ещё URL и адреса почты, просто набранные в тексте и никогда не превращённые в аннотации: сноска со ссылкой https://example.org/docs, адрес в подписи. Для читателя это ссылки. Для того, кто читает только /Annots, их не существует. Этот инструмент сообщает и о тех, и о других, и говорит, что есть что.
Что он показывает
- Внешние ссылки — цели
httpиhttps. - Внутренние ссылки — переходы внутри документа. Назначение разрешается до настоящего номера страницы, будь то явный массив назначения или именованное назначение из дерева имён.
- mailto и tel — показываются без схемы, чтобы адрес или номер читались.
- Файловые ссылки — цели, открывающие что-то вне документа.
- Действия JavaScript — URI
javascript:, выполняющий код по щелчку. - Незалинкованные URL и адреса почты — найденные в тексте, помеченные отдельно и пропущенные, если они уже находятся внутри аннотации-ссылки.
У каждой записи есть страница, видимый текст (восстановленный из слов самой страницы внутри прямоугольника аннотации, потому что аннотация-ссылка не хранит текста) и цель.
Пометки риска
javascript— щелчок выполняет код в просмотрщике.mismatch— видимый текст является URL на один хост, а настоящая ссылка ведёт на другой. Это классическая форма фишинга, а просмотрщик PDF показывает только текст. Такое стоит увидеть до щелчка.no-target— аннотация-ссылка без URL и без разрешимого назначения: мёртвая в любом просмотрщике.relative— цель без схемы, которая разрешается относительно места открытия файла.
Ничего не запрашивается
Ни один URL из документа никогда не запрашивается. Это важно: подозрительный PDF можно изучить, не трогая сервер на другом конце и не выдавая, что вы его открыли. Файл разбирается целиком в браузере, ничего не загружается.
Выгрузка
CSV — по строке на ссылку со страницей, видом, видимым текстом, целью, разрешённой страницей назначения и пометками — или JSON с теми же данными плюс прямоугольники, если хотите строить на этом что-то своё.
Tiny Online Tools







