col*_*ron 6 javascript printing pdf pdf.js
我使用pdf.js在页面中嵌入单页PDF,我希望能够只打印PDF,而不是整个HTML页面.
这可能吗?
我以前使用 pdf.js 将 pdf 文档加载到画布上。
画布仅包含一页。所以这对我来说对单个页面有用:
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();
Run Code Online (Sandbox Code Playgroud)
我仍然需要找出多个页面需要什么。如果我这样做,我会编辑这个答案。
我不得不说这种方法不是最佳的,因为它不会打印“相机就绪”的 pdf 页面,或者换句话说,它没有以原始形式打印。它打印pdf页面的图像。区别在于不应该存在的边距和不应该存在的页眉/页脚,因为它们不在原始文档中。因此,我将寻找一种方法来打印它,就像 pdf.js 查看器打印它一样 - 以原始形式并忠实于原始文档。
col*_*ron -5
我终于解决了。
我无法在这里发布我的代码,但这就是我所做的:
我将 PDF 渲染到 2 个画布上,一张小用于缩略图,一张大用于打印(隐藏)。然后,我有一个打印按钮,它打开一个新窗口,其中包含一个img标签,其中包含使用的巨大画布的内容toImageURL()。该print()函数在新窗口上调用,然后在close()打印后自动关闭它。
这导致了几乎全尺寸的 PDF 打印,尽管带有来自浏览器的常见页码和日期戳。