js保存图片-打印
保存为图片
对于复杂一些的dom结构,可以使用第三方库(html2canvas
)把html转换成canvas然后在进行图片保存or打印:1
2
3
4
5
6
7
8
9
10
11
12
13import * as html2canvas from 'html2canvas';
let canvasToSave = document.getElementById('myCanvas');
html2canvas(canvasToSave, {
background: '#D3D3D3',
onrendered: function(canvas) {
document.body.style.width = '';
let aTag = document.createElement('a');
aTag.href = canvas.toDataURL();
aTag.download = graphName;
aTag.click();
}
});
打印
window.print(); 打印的是document.body.innerHTML的内容即全页面内容
@Media print {} 加打印样式
canvas
如果要打印页面部分内容,而且其中有canvas时,可以使用window.open()方法新建一个窗口来打印内容。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17var dataUrl = canvas.toDataURL();
var windowContent = '<!DOCTYPE html>';
windowContent += '<html>'
windowContent += '<head><title>Print canvas</title></head>';
windowContent += '<body>'
windowContent += '<img src="' + dataUrl + '">';
windowContent += '</body>';
windowContent += '</html>';
var printWin = window.open('', '');
printWin.document.open();
printWin.document.write(windowContent);
printWin.document.addEventListener('load', function() {
printWin.focus();
printWin.print();
printWin.document.close();
printWin.close();
}, true);
原文作者: Sampwood
原文链接: https://sampwood.github.io/2017/11/21/js保存图片-打印/
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议