【问题标题】:How to disable hyperlinks within a PDF rendered by PDF.js如何禁用 PDF.js 呈现的 PDF 中的超链接
【发布时间】:2015-06-27 04:07:51
【问题描述】:

我正在研究用于 Web 应用程序的 PDF.js。到目前为止,它满足了我们所有的业务需求。但是,管理层要求我们能够禁用 PDF 中的超链接。我们不一定要去掉蓝色文本和下划线,但如果用户点击超链接,它不应该去任何地方。

我仔细查看了有哪些 API,但找不到任何东西。我还查看了源代码,但没有任何东西跳出来,因为我可以注释掉以禁用超链接。有什么方法可以禁用 PDF 中包含的超链接?

【问题讨论】:

    标签: javascript hyperlink pdf.js


    【解决方案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();
        }
       }
    };
    

    它的作用是获取呈现的页面,遍历该页面上的所有超链接,然后禁用它们。我还添加了一个布尔变量,允许您选择允许或禁止内部链接(即,将用户带到文档中另一个位置的链接)。

    【讨论】:

    • 很好的答案,我在 QT pdf 的 viewer.js 中找到了该功能并且能够禁用链接,非常感谢。
    猜你喜欢
    • 2015-11-07
    • 2014-06-16
    • 2019-11-25
    • 1970-01-01
    • 2015-10-11
    • 2019-06-29
    • 1970-01-01
    相关资源
    最近更新 更多