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 国际许可协议