不依赖插件前端html导出world,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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值