2015-06-25 7 views
0

Я ищу PDF.js для использования в веб-приложении. До сих пор он отвечал всем нашим бизнес-требованиям. Тем не менее, руководство запросило, что у нас есть возможность отключить гиперссылки в PDF. Мы не обязательно должны избавляться от синего текста и подчеркивания, но если пользователь нажимает на гиперссылку, он не должен никуда идти.Как отключить гиперссылки в PDF, предоставленные PDF.js

Я внимательно изучил, что такое API, и ничего не нашел для него. Я также просмотрел исходный код, но ничего не выскочил на меня, как что-то, что я мог прокомментировать, чтобы отключить гиперссылки. Есть ли способ отключить гиперссылки, содержащиеся в PDF-файле?

ответ

1

После большого количества экспериментов я узнал, как это сделать, изменив источник. Существует блок кода, который начинается с нижеследующим:

document.addEventListener('pagerendered', function (e) { 

В конце функции перед закрывающей скобкой, добавьте следующий код:

var allowInternalLinks = true; 
var page = document.getElementById('pageContainer' + pageNumber); 
var hyperlinks = page.getElementsByTagName('a'); 
for (var i=0; i<hyperlinks.length; i++){ 
    if (!allowInternalLinks || hyperlinks[i].className != 'internalLink'){ 
    hyperlinks[i].onclick = function(e) { 
     e.preventDefault(); 
    } 
    } 
}; 

Что это делает это взять обработанную страницу , перебирать все гиперссылки на этой странице и отключать их. Я также добавил логическую переменную, которая позволяет необязательно разрешать или запрещать внутренние ссылки (т. Е. Ссылки, которые переводят пользователя в другое место в документе).

+0

отличный ответ, я нашел эту функцию в viewer.js на QT pdf и смог отключить ссылку, большое спасибо. –