解决lodop不能打印echarts图表

最近做项目需要打印各种图表,目前项目用的lodop打印控件

ECharts一个纯 Javascript 的图表库,它提供了绘制各种图形的方法方法,几乎囊括了所有的二维图形,用起来也很是方便。还提供了图片下载的功能。但是在和lodop集成时候发现打印不出图表。于是就设想echarts自动生成图片的base64码渲染到IMG标签里,然后在用LODOP.ADD_PRINT_HTM打印。

代码如下:用到了echarts的   myChart.getImage() 该方法反会了一个图表的base64码

  // 图片base64编码
	  var jlcgImgBase64;
	  // 基于准备好的dom,初始化echarts实例
	  onload = function(){
	     var myChart = echarts.init(document.getElementById('main'));

        // 指定图表的配置项和数据
         var option = {
            title: {
                text: 'ECharts打印示例'
            },
            tooltip: {},
            legend: {
                data:['销量']
            },
            xAxis: {
                data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
            },
            yAxis: {},
            animation: false,
            series: [{
                name: '销量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
         };
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
        jlcgImgBase64 = myChart.getDataURL();
        //动态的渲染到打印html的标签上
        document.getElementById('jlcg').setAttribute('src',jlcgImgBase64)
	  }

利用lodop 的LODOP.ADD_PRINT_HTM方法打印

最终效果如下解决lodop不能打印echarts图表_第1张图片



你可能感兴趣的:(前端,lodop)