js调用打印机打印指定内容分两种方式,一种是用html5把指定区域转化为canvas在打印,但是此种方法当内容中有图片时却打印不了,代码如下:
function printById(id) {
html2canvas(document.getElementById(id), {
allowTaint : true,
taintTest : false,
onrendered : function(canvas) {
canvas.id = "mycanvas";
//document.body.appendChild(canvas);
//生成base64图片数据
var dataUrl = canvas.toDataURL();
var newImg = document.createElement("img");
newImg.src = dataUrl;
/* document.body.appendChild(newImg); */
/* window.open(newImg.src); */
var printWindow = window.open(newImg.src);
// printWindow.document.write();
printWindow.document.write('<img src="'+newImg.src+'" />')
printWindow.print();
}
});
}
另一种方法是直接通过js调用打印机,再设置不打印的样式表,将不打印的内容类设置为不打印的样式表即可,样式表内容如下:
<style type="text/css">
@media print {
.Noprint {
display: none;
}
}
</style>
调用打印机方式:window.printf()