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本地导出图片功能,其中的export项目可以直接运行
使用Highcharts,js控件打印,导出功能,将页面保存在本地指定路径,或者直接输出到页面,程序可直接运行。
Highcharts 支持导出功能,用户可以一键导出 PNG、JPEG、PDF 或 SVG 文件,通过插件可以实现导出为 Excel 文件功能;另外,用户还可以从网页上直接打印图表。 zooming缩放和钻取 通过缩放可以方便的查看不同范围的...
资源名称:Highcharts使用说明 中文WORD版内容简介:...但是如果需要支持主题和导出图表功能,就需要引入其它相应的JS类库。有需要的朋友可以下载看看 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
Highmap s中有各种地图类型:你可以制作兴趣地图,在地图上画气泡等,这些功能是和 Highcharts 中的系列类型相对应的。. 多彩坐标轴 为了呈现多彩的地图,Highmaps中有一个单独的颜色轴,它继承了坐标轴的大部分...
highcharts、highstock下载打印功能改成自己的URL,不用连外网也能使用此功能。适用于VS2010、MVC3.0。简单易用,提供出错帮助
主要是用来处理导出图片,pdf等功能,一般是调用highcharts官网的,现可以将其部署在本地在没有网络的时候也可以正常导出。需要用到phantomjs,需要修改配置highcharts-export\WEB-INF\spring\app-convert....
Highstock 支持导出功能,用户可以一键导出 PNG、JPEG、PDF 或 SVG 文件,通过插件可以实现导出为 Excel 文件功能;另外,用户还可以从网页上直接打印图表。 zooming缩放和平移 除了通过滚动条或导航器控制放大和平...
Highstock 支持导出功能,用户可以一键导出 PNG、JPEG、PDF 或 SVG 文件,通过插件可以实现导出为 Excel 文件功能;另外,用户还可以从网页上直接打印图表。 zooming缩放和平移 除了通过滚动条或导航器控制放大和平...
-- 需要保存导出功能模块文件是在 highcharts.js 之后引入 --> [removed][removed] <!-- 客户端导出功能模块为可选选项 --> [removed][removed] 关于图表导出详细配置请参考 API 文档。
一.基本组成: 1.Highcharts包含标题(Title):主标题是必须的但是subTTitle不是必须 2.坐标轴(Axis):有x坐标(xAxis)和y坐标(yAxis) 3.... 4.... 5.... 7.版权信息(Credits):一般是...导出功能按钮(Expo
Highcharts是一个跨浏览器的JavaScript图表控件,支持柱状图、趋势图、面积图、饼图、环形图、组合图、堆积图、散点图。Highcharts图表的基本功能...但是如果需要支持主题和导出图表功能,就需要引入其它相应的JS类库。
easyUI+HighCharts+Aspose.cells+Aspose.word+Aspose.Pdf+WebService等的实例应用,easyui包括异步树加载,嵌套表格等,highcharts包括本地导出图片(仅限jpg)柱状,线状图例等,aspose.word、excel、pdf等使用的...
excel-gen.js FileSaver.js jszip.min.js export_data.js exporting.js highcharts.js jquery.min.js
当然他的功能远不止这些,各种图表,打印,导出,对比分析。 他不仅仅可以用来做网站的图表分析,就是在有什么总结演示的时候用这个做出来的东西想必也是让人眼前一亮吧,完全就可以抛弃PPT了啊。 所以赶紧来了解...
• 报表整合:Excel简易导出工具+Highcharts图形报表 • 工作流设计器让业务系统更灵活 • 常用共通封装(数据字典/邮件发送/定时任务/短信接口/Freemarker工具类等..) • 兼容IE 6、IE 8+和Google等浏览器 • 支持...
【资源说明】 1、基于springboot+MyBatis实现的某房产平台系统源码+项目说明(毕设).zip 2、该资源包括项目的全部...Echarts、HighCharts图表展示 poi报表导入导出 HttpSessionListener监听器统计系统当前在线人数
• 报表整合: Excel简易导出工具类+Highcharts图形报表 • 工作流设计器让业务系统更灵活 • 各种共通封装(数据字典/邮件发送/定时任务/短信接口/Freemarker工具类) • 兼容IE 6、IE 8+和Google等浏览器 • 支持SQL...
• 报表整合:Excel简易导出工具类+Highcharts图形报表 • 工作流设计器让业务系统更灵活 • 各种共通封装(数据字典/邮件发送/定时任务/短信接口/Freemarker工具类) • 兼容IE 6、IE 8+和Google等浏览器 支持...