Относительные ссылки в нативном просмотрщике PDF в Firefox

Jun 15, 2015 16:04


Они не работают. Просмотрщик их вырезает, когда парсит PDF-документ в HTML-страницу. Он хочет видеть протокол из каких-то соображений безопасности, а протокола в относительных ссылках, понятное дело, нет в явном виде.

А у нас в системе, как на грех, куча нормативных документов в PDF с перекрёстными ссылками. А доступ через браузер, через нашу любимую «Файерфокс». Мы пытались зашивать в документы (благо мы их и генерируем) заведомо неправильные, но абсолютные пути, потом перехватывать скриптом щелчки по ссылкам в распарсенном PDF-документе и перенаправлять браузер куда надо. А вот не тут-то было! По неким загадочным причинам у таких документов оказывается document.domain==="pdf.js", срабатывают кроссдоменные ограничения и достучаться к документу в плавающем фрейме или зависимом окне из родительского скрипта мы не можем. Да, HTTP-заголовки пробовали, не помогает.

Решение было найдено в использовании библиотеки PDFJS,- которая, собственно, потом и была зашита внутрь браузера. Скачиваем, правим в ней одну строчку, затем все обращениями за PDF направляем через её просмотрщик: viewer.html?file=путь_к_файлу. Там, конечно, дальше без хитростей не обошлось, но принцип такой.

javascript, firefox, Web-разработка, pdf

Previous post Next post
Up