问题描述

项目发货单中生成二维码,使用的是qrcode,调用window.print(),不显示二维码部分,这玩意是用的一个canvas生成的二维码图像,这里将canvas转为img 就可以显示了。


解决方案:

//从 canvas 提取图片 image
canvasToImage(canvas) {
//新Image对象,可以理解为DOM
var image = new Image();
// canvas.toDataURL 返回的是一串Base64编码的URL,当然,浏览器自己肯定支持
// 指定格式 PNG
image.src = canvas.toDataURL("image/png");
return image;
}

canvas节点转换成img_Image

let mycanvas = document.getElementsByTagName('canvas')[0];//获取网页中的canvas对象
let img = this.canvasToImage(mycanvas);//将转换后的img标签插入到html中
let code = document.getElementById("code")
code.appendChild(img);//img加入到要插入的容器id