Java编写的HighCharts服务端图表下载程序
?
????? HighCharts一是款基于SVG的图表工具,用jQuery与SVG交互,具有动画效果,并能实现钻(这个字搞不好写错了)取功能。可能由于HighCharts是收费的,所以图表的下载代码并没有开放,大家一定会发现,只有连接了互联网,才能使用此功能,这在实际的项目中当然是不能用了,因为大部份的企业局域网是不能访问互联网的,那就只好自己来开发这块功能了。
??? 1、首先我们要讲讲SVG,那么什么是SVG呢?
??? SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG由W3C制定,是一个开放标准。 SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式。
??? SVG在网络上有很多教程,这里我就不详细介绍了,大家可以参考以下链接:http://www.chinasvg.com;
?
??? 2、我们点击导出图片的时候实际上是吧svg图片数据以post请求的方式发送给了Exports.highcharts.com, 该站?? 点是以php程序出来这些数据的。????
??????? 这个是从某位高手那里找来的,老外写的,用java来处理svg 图片数据导出各种图片。
??????? 使用的是apache 的batik, 必须下载batik的jar包,
??????? 这个包是干嘛的?我现在只知道是用来将svg 图片数据转成各种格式图片的。
?
??? HighChartsAPI
?
?
DownloadCharAction.java
?
?
?
FileExtendsName.java
?
package com.zh.dy.utils.highcharts;public enum ChartsType {image_png("image/png"), image_jpeg("image/jpeg"), application_pdf( "application/pdf"), image_svg_xml("image/svg+xml"),contentType("application/x-download"),content_Disposition("Content-Disposition"),attachment("attachment;filename="); private String chartsTypeName; private ChartsType(String chartsTypeName) { this.chartsTypeName = chartsTypeName; } public String getChartsTypeName() { return chartsTypeName; } public void setChartsTypeName(String chartsTypeName) { this.chartsTypeName = chartsTypeName; } }?
?
修改exporting.js中的服务端url,默认是http://export.highcharts.com/,我们需要改成自己项目中的URL。这样,我们就可以实现图表下载了。?
1 楼 LewJun 2012-05-16 请问,页面怎么传入 String fileName = this.getRequest().getParameter("filename");
String svg = this.getRequest().getParameter("svg");
String type = this.getRequest().getParameter("type");
String width = this.getRequest().getParameter("width");
参数啊?