首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pdf.js打印

使用pdf.js打印
EN

Stack Overflow用户
提问于 2013-01-18 23:20:21
回答 3查看 36.6K关注 0票数 6

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

这个是可能的吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-23 05:51:31

我终于想出了办法。

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

我将PDF渲染到两个画布上,一个小的用于缩略图,另一个大的用于打印(隐藏)。然后我有了一个print按钮,它使用toImageURL()打开一个新窗口,其中包含一个包含巨大画布内容的img标记。在新窗口上调用print()函数,然后调用close()以在打印后自动关闭该窗口。

这导致了一个几乎全尺寸的PDf打印,尽管有浏览器通常的页面编号和日期戳。

票数 -4
EN

Stack Overflow用户

发布于 2015-12-04 05:25:11

我之前使用pdf.js将pdf文档加载到画布上。

画布只包含一页。这就是我在一个页面上的工作原理:

代码语言:javascript
复制
  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查看器打印它一样--以原始形式打印它,并保真到原始文档。

票数 5
EN

Stack Overflow用户

发布于 2016-10-27 18:22:49

我们可以将以下代码放在viewer.js文件的末尾,它将自动打印pdf:

代码语言:javascript
复制
(function () {
    function printWhenReady() {
        try{
            if (PDFViewerApplication.initialized) {
                window.print();
            }
            else {
                window.setTimeout(printWhenReady, 3000);
            }
        }catch(ex){
            window.setTimeout(printWhenReady, 3000);
        }
    };

    printWhenReady();
})();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14401965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档