echarts图片很方便也好用,但是最近项目里用到了打印功能,要把页面图表也打印出来。
神奇的是,一点打印,图表就不见了,找了一下原因,原来是因为echarts是动态渲染出来的。
有什么办法能解决呢,找了万能的度娘,终于还是解决的我的问题。
那就是在图表渲染完成后将图片导出,并将图片地址赋值给img标签,打印时就打印img就能打印出图表。
具体如下
echarts提供了一个finished来监测图表是否已经渲染完成,还提供了一个getDataURL方法来生成图表的图片data 64地址
/**
* id 显示地图的div的id
* rows 地图上的xy轴的数据
*/
function drawChart(id, rows, option) {
option.series[0].data = rows;
var chart = echarts.init(document.getElementById(id));
chart.setOption(option);
//图表渲染完成后导出成图片给img标签
chart.on('finished',function(){
var img=chart.getDataURL();
$('#img'+id).attr('src',img);
});
}
棒棒的。。问题都迎刃而解。。