HighCharts一是款基于SVG的图表工具,用jQuery与SVG交互,具有动画效果,并能实现钻(这个字搞不好写错了)取功能。可能由于HighCharts是收费的,所以图表的下载代码并没有开放,大家一定会发现,只有连接了互联网,才能使用此功能,这在实际的项目中当然是不能用了,因为大部份的企业局域网是不能访问互联网的,那就只好自己来开发这块功能了。
1、首先我们要讲讲SVG,那么什么是SVG呢?
SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG由W3C制定,是一个开放标准。 SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式。
SVG在网络上有很多教程,这里我就不详细介绍了,大家可以参考以下链接:http://www.chinasvg.com;
2、HighCharts下载图表提交到服务器的数据是SVG文档,这时候我们需要在服务端处理这SVG文档,我们可以有很多方式,自己开发OR采用现成框架,自己开发显然有点不现实,工作量太大了,我们还是用batik这个框架处理吧,batik是apache的一个开源项目,JAVA程序员好都在用apache的框架,哈哈!
我用的是Servlet来开发的,当然,你可以用struts或者其他MVC框架。这个程序中,我还用到了两个枚举类,下面也贴出来,不然大家一定要晕了。
3、修改exporting.js中的服务端url,默认是http://export.highcharts.com/,我们需要改成自己项目中的URL。这样,我们就可以实现图表下载了,代码大概在这个位置:
4、贴上一个效果图,免得本文有纸上谈兵的闲凝!
5、代码在我的空间中提供下载