highchart不依赖插件的图表导出

Posted zxy_cq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了highchart不依赖插件的图表导出相关的知识,希望对你有一定的参考价值。

关键步骤:

1.获取svg,并转化为base64编码;

var svg = $(‘.highcharts-container‘).html();
var image = new Image();
//将svg通过base64编码转为图片对象
image.src = ‘data:image/svg+xml;base64,‘ + window.btoa(unescape(encodeURIComponent(svg)));

2.通过canvas转为图片并下载;

var context = canvas.getContext(‘2d‘);  //取得画布的2d绘图上下文
context.drawImage(image, 0, 0);

var a = document.createElement(‘a‘);
a.href = canvas.toDataURL(‘image/png‘); //将画布内的信息导出为png图片数据
a.download = "MapByMathArtSys"; //设定下载名称

注:图片图标在图表中仍然是原格式,所以不会被转化。需要单独在canvas中绘制;
eg:
var icon = new Image();
icon.src=$(".highcharts-container svg image").attr("href");
//计算图标的位置
var icon_x=parseFloat($(".highcharts-container svg image").attr("x"))+parseFloat($(".highcharts-plot-background").attr("x"))-parseFloat(icon.width)/2;
var icon_y=parseFloat($(".highcharts-container svg image").attr("y"))+parseFloat($(".highcharts-plot-background").attr("y"))-parseFloat(icon.height)/2;

context.drawImage(icon, icon_x, icon_y);

以上是关于highchart不依赖插件的图表导出的主要内容,如果未能解决你的问题,请参考以下文章

Highcharts图表插件的简单使用说明

Highcharts区域填补顶部

highcharts插件 怎样只显示部分数据

图表插件Highcharts的动态化赋值,实现图表数据的动态化设置显示

JS图表插件 highcharts 简单Demo

Python使用Flask框架,结合Highchart,自定义导出菜单项目及顺序