使用pdf.js打印PDF(Printing PDF using pdf.js)

2019-07-18 10:19发布

我使用pdf.js在页面中嵌入一个单页PDF,我希望能够打印只是PDF,而不是整个HTML页面。

这可能吗?

Answer 1:

我以前加载的PDF文档到使用pdf.js.画布

画布只包含一个页面。 所以这是为我工作在一个页面:

  var canvas = document.getElementById('pdfPage');
  var win = window.open('', '', '');
  var html = "<img src='" + canvas.toDataURL() + "'>";
  win.document.write(html);
  win.document.close();
  win.focus();
  win.print();
  win.close();

我还需要了解什么是需要多个页面。 如果我这样做,我将修改这个答案。

我不得不说,这种做法是不是最佳的,因为它不打印的PDF页面“相机准备”,或者换句话说,在它的原始形式。 它打印的PDF页面的图像。 所不同的是利润,不应该在那里,页眉/页脚不应该存在,因为它们不是原来的文件内。 因此,我要寻找的是打印它像pdf.js观众打印出来的方法 - 在它的原始形式忠实还原最初的文件。



Answer 2:

我们可以在viewer.js文件,该文件会自动打印PDF年底把下面的代码:

(function () {
    function printWhenReady() {
        try{
            if (PDFViewerApplication.initialized) {
                window.print();
            }
            else {
                window.setTimeout(printWhenReady, 3000);
            }
        }catch(ex){
            window.setTimeout(printWhenReady, 3000);
        }
    };

    printWhenReady();
})();


Answer 3:

我终于摸索出来。

我不能在这里发布我的代码,但这里是我所做的:

我提供的PDF到2个画布,一个小的缩略图和一个巨大的印刷(隐藏)。 然后我有打开包含一个新的窗口中打印按钮img含有巨大的画布内容使用标签toImageURL()print()函数被调用新的窗口上,随后close()将其关闭后自动打印。

这导致在PDF中的几乎全尺寸打印,虽然与通常的网页已不和日期戳从浏览器。



文章来源: Printing PDF using pdf.js