`

highcharts的导出功能

阅读更多
package cn.com.songjy.servlet;

import java.io.IOException;
import java.io.StringReader;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.batik.transcoder.Transcoder;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.JPEGTranscoder;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.apache.fop.svg.PDFTranscoder;

/**
 * Servlet implementation class ExportServlet
 */
public class ExportServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * Default constructor.
	 */
	public ExportServlet() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");

		String type = request.getParameter("type");

		String svg = request.getParameter("svg");

		ServletOutputStream out = response.getOutputStream();

		if (null != type && null != svg) {

			// This line is necessary due to a bug in the highcharts SVG
			// generator for IE

			// I'm guessing it wont be needed later.

			svg = svg.replaceAll(":rect", "rect");

			String ext = "";

			Transcoder t = null;

			if (type.equals("image/png")) {

				ext = "png";

				t = new PNGTranscoder();

			} else if (type.equals("image/jpeg")) {

				ext = "jpg";

				t = new JPEGTranscoder();

			} else if (type.equals("application/pdf")) {

				ext = "pdf";

				t = new PDFTranscoder();

			} else if (type.equals("image/svg+xml")) {

				ext = "svg";

			}

			response.addHeader("Content-Disposition",
					"attachment; filename=chart." + ext);

			response.addHeader("Content-Type", type);

			if (null != t) {

				TranscoderInput input = new TranscoderInput(new StringReader(
						svg));

				TranscoderOutput output = new TranscoderOutput(out);

				try {

					t.transcode(input, output);

				} catch (TranscoderException e) {

					out.print("Problem transcoding stream. See the web logs for more details.");

					e.printStackTrace();

				}

			} else if (ext == "svg") {

				out.print(svg);

			} else {

				out.print("Invalid type: " + type);

			}

		} else {

			response.addHeader("Content-Type", "text/html");

			out.println("Usage:\n\tParameter [svg]: The DOM Element to be converted.\n\tParameter [type]: The destination MIME type for the elment to be transcoded.");

		}

		out.flush();

		out.close();
	}

}


备注:所需jar包见附件,也可至官网http://xmlgraphics.apache.org/batik/下载


引自:http://wenku.baidu.com/view/f39593c76137ee06eff9189e.html

参考资料:
http://wenku.baidu.com/view/adfc303d376baf1ffc4fad33.html
http://wenku.baidu.com/view/6b392bc36137ee06eff9183e.html
分享到:
评论

相关推荐

    highcharts 导出图片 .net c#Demo例子

    highcharts 导出图片 .net c#Demo例子

    highcharts本地导出图片案例

    整理的highcharts本地导出图片功能,其中的export项目可以直接运行

    Highcharts导出图片到本地指定路径

    使用Highcharts,js控件打印,导出功能,将页面保存在本地指定路径,或者直接输出到页面,程序可直接运行。

    Highcharts-8.1.2.zip

    Highcharts 支持导出功能,用户可以一键导出 PNG、JPEG、PDF 或 SVG 文件,通过插件可以实现导出为 Excel 文件功能;另外,用户还可以从网页上直接打印图表。 zooming缩放和钻取 通过缩放可以方便的查看不同范围的...

    Highcharts使用说明中文WORD版

    资源名称:Highcharts使用说明 中文WORD版内容简介:...但是如果需要支持主题和导出图表功能,就需要引入其它相应的JS类库。有需要的朋友可以下载看看 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    Highcharts-Maps-8.1.2.zip

    Highmap s中有各种地图类型:你可以制作兴趣地图,在地图上画气泡等,这些功能是和 Highcharts 中的系列类型相对应的。. 多彩坐标轴 为了呈现多彩的地图,Highmaps中有一个单独的颜色轴,它继承了坐标轴的大部分...

    highcharts、highstock下载功能改成自己的URL,不用连外网也能使用此功能。适用于VS2010、MVC3.0

    highcharts、highstock下载打印功能改成自己的URL,不用连外网也能使用此功能。适用于VS2010、MVC3.0。简单易用,提供出错帮助

    highcharts-export

    主要是用来处理导出图片,pdf等功能,一般是调用highcharts官网的,现可以将其部署在本地在没有网络的时候也可以正常导出。需要用到phantomjs,需要修改配置highcharts-export\WEB-INF\spring\app-convert....

    Highcharts-Stock-8.1.2.zip

    Highstock 支持导出功能,用户可以一键导出 PNG、JPEG、PDF 或 SVG 文件,通过插件可以实现导出为 Excel 文件功能;另外,用户还可以从网页上直接打印图表。 zooming缩放和平移 除了通过滚动条或导航器控制放大和平...

    Highcharts-Gantt-8.1.2.zip

    Highstock 支持导出功能,用户可以一键导出 PNG、JPEG、PDF 或 SVG 文件,通过插件可以实现导出为 Excel 文件功能;另外,用户还可以从网页上直接打印图表。 zooming缩放和平移 除了通过滚动条或导航器控制放大和平...

    显示图形

    -- 需要保存导出功能模块文件是在 highcharts.js 之后引入 --> [removed][removed] <!-- 客户端导出功能模块为可选选项 --> [removed][removed] 关于图表导出详细配置请参考 API 文档。

    Highcharts入门之基本属性

    一.基本组成:  1.Highcharts包含标题(Title):主标题是必须的但是subTTitle不是必须  2.坐标轴(Axis):有x坐标(xAxis)和y坐标(yAxis)  3.... 4.... 5.... 7.版权信息(Credits):一般是...导出功能按钮(Expo

    Highcharts使用说明

    Highcharts是一个跨浏览器的JavaScript图表控件,支持柱状图、趋势图、面积图、饼图、环形图、组合图、堆积图、散点图。Highcharts图表的基本功能...但是如果需要支持主题和导出图表功能,就需要引入其它相应的JS类库。

    easyUI+HighCharts+Aspose.cells+Aspose.word+Aspose.Pdf+WebService大杂烩

    easyUI+HighCharts+Aspose.cells+Aspose.word+Aspose.Pdf+WebService等的实例应用,easyui包括异步树加载,嵌套表格等,highcharts包括本地导出图片(仅限jpg)柱状,线状图例等,aspose.word、excel、pdf等使用的...

    excel-gen.js 导出excel 功能

    excel-gen.js FileSaver.js jszip.min.js export_data.js exporting.js highcharts.js jquery.min.js

    Highcharts入门之简介

    当然他的功能远不止这些,各种图表,打印,导出,对比分析。 他不仅仅可以用来做网站的图表分析,就是在有什么总结演示的时候用这个做出来的东西想必也是让人眼前一亮吧,完全就可以抛弃PPT了啊。 所以赶紧来了解...

    jeecg-framework-v2.0 (最新源码)

    • 报表整合:Excel简易导出工具+Highcharts图形报表 • 工作流设计器让业务系统更灵活 • 常用共通封装(数据字典/邮件发送/定时任务/短信接口/Freemarker工具类等..) • 兼容IE 6、IE 8+和Google等浏览器 • 支持...

    基于springboot+MyBatis实现的某房产平台系统源码+项目说明(毕设).zip

    【资源说明】 1、基于springboot+MyBatis实现的某房产平台系统源码+项目说明(毕设).zip 2、该资源包括项目的全部...Echarts、HighCharts图表展示 poi报表导入导出 HttpSessionListener监听器统计系统当前在线人数

    spring+struts+hibernate半自动开发.zip

    • 报表整合: Excel简易导出工具类+Highcharts图形报表 • 工作流设计器让业务系统更灵活 • 各种共通封装(数据字典/邮件发送/定时任务/短信接口/Freemarker工具类) • 兼容IE 6、IE 8+和Google等浏览器 • 支持SQL...

    jeecg-framework 源代码

    • 报表整合:Excel简易导出工具类+Highcharts图形报表 • 工作流设计器让业务系统更灵活 • 各种共通封装(数据字典/邮件发送/定时任务/短信接口/Freemarker工具类) • 兼容IE 6、IE 8+和Google等浏览器 支持...

Global site tag (gtag.js) - Google Analytics