Ссылки с веб-страницы на определенный раздел (якорь) в документе PDF

Существует стандарт от Adobe, который теоретически определяет открытие документов PDF по ссылке, нажатой в браузере, таким образом, чтобы открывать определенные разделы (AKA "якорь", "именная ссылка") документа PDF. Эта функциональность должна быть очень полезна, если вы хотите сослаться на определенную часть большого PDF (например, некоторый стандарт или спецификацию).

Однако из того, что я вижу сейчас, поддержка этого стандарта практически отсутствует.

Например, эти ссылки должны открыть справочный документ Scala PDF в разделе 3.2.6 "Аннотированные типы":

  1. http://www.scala-lang.org/docu/files/ScalaReference.pdf
  2. http://www.scala-lang.org/docu/files/ScalaReference.pdf
  3. http://www.scala-lang.org/docu/files/ScalaReference.pdf

(Технически, вариант № 3 должен открыть страницу № 23, которая по сути является тем же местом назначения)

Есть ли рабочий способ (может быть, с помощью нескольких прокладок, запатентованных оболочек или чего-то еще), чтобы это работало на большинстве систем? Какова доля использования плагина Adobe Reader, я должен заботиться о других системах?

Если это невозможно, по крайней мере, я бы хотел найти рабочее решение для каждой платформы (например, Windows, Linux, Mac), которое я мог бы рекомендовать пользователям моего сайта, если они хотят иметь возможность использовать именованные целевые ссылки.

Из того, что я тестировал:

  • Windows, MSIE / Firefox / Chrome, плагин Adobe Acrobat Reader - все варианты работают с версией 9+, но:
    • MSIE имеет странную проблему с кэшированием (т. Е. Привязка не работает до тех пор, пока документ не будет кэширован)
    • Старые версии не работают
    • У него есть проблемы с форматом ссылок: как правило, это должна быть обычная абсолютная ссылка на реальный веб-сервер, начинающаяся с "http: //". Относительные ссылки, ссылки в стиле самбы (\\HOST\dir\file.pdf#something), ничего кроме схемы "http" (или, возможно, "https") не будет работать
  • Windows, любые браузеры, настроенные для запуска Adobe Acrobat Reader как отдельного процесса - не работает
  • Windows, любые браузеры, FoxIt Reader - не работает
  • Windows, любые браузеры, CutePDF - не работает
  • Linux/Konqueror/Okular - работает только вариант № 1
  • Linux, любые другие браузеры, настроенные для запуска Okular или любого другого средства просмотра PDF как внешнего процесса - не работает (так как браузер не передает "#arguments" в командной строке)
  • Любая ОС, Firefox 15+ PDF.js для внутреннего просмотра PDF - не работает

Буду признателен, если вы попробуете это в различных комбинациях.

1 ответ

Кажется, что в целом работает вариант № 4, но с использованием номера страницы, как при фактическом делении на страницы в документе PDF, в данном случае

http://www.scala-lang.org/docu/files/ScalaReference.pdf

В документе PDF есть номера страниц, которые начинаются с собственно контента, после таблицы контента, но эта нумерация отличается от той, которая будет использоваться в #page=...

Другие вопросы по тегам