【发布时间】:2017-02-05 02:31:34
【问题描述】:
如何打印创建的画布元素,该元素上使用 javascript 绘制了一些内容?我的打印预览显示一个空白框,而不是画布元素中的内容?
首先我使用 html2canvas 创建我的画布图像,然后我看到该图像已创建。但我无法打印包含相关图像的 div。
在 IE 中,我可以在两次触发按钮时看到它。第一次点击打开空白打印预览,第二次点击打开相关内容。但是在 chrome 中它一次打开空白内容,它无法加载第二个触发器;页面冻结。
这是我的代码;
function printDiv(index) {
var canvasImg = "";
var divToPrint = document.getElementById('hr'+index);
html2canvas(divToPrint, {
onrendered: function(canvas) {
var canvasImg = canvas.toDataURL("image/jpg");
$('#seckinCanvas').html('<img src="'+canvasImg+'" alt="">');
}
});
var printContent = document.getElementById("seckinCanvas");
var windowUrl = '';
var uniqueName = new Date();
var windowName = 'Print' + uniqueName.getTime();
var printWindow = window.open(windowUrl, windowName,'left=500,top=500,width=0,height=0');
printWindow.document.write(printContent.innerHTML);
printWindow.document.close();
printWindow.focus();
printWindow.print();
printWindow.close();
}
【问题讨论】:
-
评论完后试试 printWindow.close(); chrome 有一些问题。
-
我试过了,但没有任何改变。
标签: javascript jquery html canvas