博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自动化邮件报告平台-邮件发送highchart图表
阅读量:6431 次
发布时间:2019-06-23

本文共 1179 字,大约阅读时间需要 3 分钟。

前段时间参与开发这样的一个系统,负责前端设计开发,使用人员提出需要在邮件发送的时候自动获取这些highchart图表数据,并显示在平台页面上,当发送邮件的时候也把图表附带在邮件中。

highchart是一个比较强大的图表组件,这个图表组件以svg方式渲染在网页上,渲染完毕后会在网页中添加了svg元素,可以通过dom 或者 把svg内容单独抽取出来,此svg元素也能够在网页上直接显示,如下图所示。 

screenshot

但是,在邮箱环境下,这些svg元素不一定能展示在邮件里面,各种邮箱环境不同,在手机端邮件和pc端邮件环境也有影响,显然,这不是我们想要的效果。

我们可以通过把svg转为图片格式传到后台处理,或者把svg转为base64直接添加到邮件中里面,等方式去处理,当然处理方式肯定很多,但是离不开svg转图片格式的过程。 

最后我们使用base64的方式附带在邮件中,原因如下。 
1.图表大小比较小。 
2.平台运行在内部服务器中,不采用把svg转为图片格式单独放在外部服务器中,避免把信息暴露在外部,同时也避免了增加外部服务器的措施。

最后问题变为如何把svg转为base64的方式显示在网页上。

我们可以通过使用 canvg. 把svg渲染在canvas上,我们知道canvas有一个函数toDataURL能够把canvas上显示的内容保存为base64,所以以后我们发送邮件的时候把base64图片追加到邮件正文中显示就可以了。

TIP: 

anvag.js上遇到的小坑:作者官网版本的canvag把含有中文的图表转为图片格式后中文乱码,建议使用附件附带的canvg版本。

附件附带:通过canvg.js把svg渲染在canvas上的实例。

http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244545

http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244541
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244538
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244527
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244528
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244529
http://bbs.bxzc123.com/forum.php?mod=viewthread&tid=244530

 

转载于:https://www.cnblogs.com/sy646et/p/7266023.html

你可能感兴趣的文章
cisco路由器宽带拨号pppoe
查看>>
XD5.x重置所有设置
查看>>
HTML5的新增特性
查看>>
Spring AOP回顾
查看>>
单据excel数据付款关联取数实现
查看>>
我的友情链接
查看>>
Springboot整合Netty注意事项
查看>>
Tomcat启动异常:java.lang.ClassNotFoundException
查看>>
window server 林信任关系
查看>>
深入JVM锁机制2-Lock
查看>>
libjson文档翻译
查看>>
我的友情链接
查看>>
Mysql 笔记之基础知识
查看>>
Velocity 官方实例学习一 (app_example1)
查看>>
maven 使用本地jar
查看>>
缓存穿透,缓存雪崩的四种解决方案
查看>>
酷派8150(移动版)直板4英寸单核30万像素智能手机参数
查看>>
为你喜欢的网站建立一个“快捷方式”【url】
查看>>
一键DDOS防火墙安装程序
查看>>
python3 开发微信自动回复
查看>>