我正在使用pdf.js嵌入一个页面的PDF单页,我希望能够打印的PDF,而不是整个HTML页面。
这个是可能的吗?
发布于 2013-01-23 05:51:31
我终于想出了办法。
我不能在这里发布我的代码,但我是这样做的:
我将PDF渲染到两个画布上,一个小的用于缩略图,另一个大的用于打印(隐藏)。然后我有了一个print按钮,它使用toImageURL()打开一个新窗口,其中包含一个包含巨大画布内容的img标记。在新窗口上调用print()函数,然后调用close()以在打印后自动关闭该窗口。
这导致了一个几乎全尺寸的PDf打印,尽管有浏览器通常的页面编号和日期戳。
发布于 2015-12-04 05:25:11
我之前使用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();我仍然需要找出多个页面需要什么。如果我这样做了,我会编辑这个答案。
我不得不说,这种方法并不是最优的,因为它不会打印pdf页面“相机就绪”,换句话说,它不会以原始形式打印出来。它打印pdf页面的图像。区别在于不应该在那里的页边距和不应该在那里的页眉/页脚,因为它们不在原始文档中。因此,我将寻找一种方法来打印它,就像pdf.js查看器打印它一样--以原始形式打印它,并保真到原始文档。
发布于 2016-10-27 18:22:49
我们可以将以下代码放在viewer.js文件的末尾,它将自动打印pdf:
(function () {
function printWhenReady() {
try{
if (PDFViewerApplication.initialized) {
window.print();
}
else {
window.setTimeout(printWhenReady, 3000);
}
}catch(ex){
window.setTimeout(printWhenReady, 3000);
}
};
printWhenReady();
})();https://stackoverflow.com/questions/14401965
复制相似问题