java导出highcharts_Java导出Highcharts生成的图表为图片源码

packagecom.foxconn.highcharts.demo;importjava.io.IOException;importjava.io.OutputStreamWriter;importjava.io.StringReader;importjavax.servlet.ServletException;importjavax.servlet.ServletOutputStream;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.batik.transcoder.Transcoder;importorg.apache.batik.transcoder.TranscoderException;importorg.apache.batik.transcoder.TranscoderInput;importorg.apache.batik.transcoder.TranscoderOutput;importorg.apache.batik.transcoder.image.JPEGTranscoder;importorg.apache.batik.transcoder.image.PNGTranscoder;//import org.apache.fop.svg.PDFTranscoder;

public class SaveAsImage extendsHttpServlet {/****/

private static final long serialVersionUID = 1L;/*** Constructor of the object.*/

publicSaveAsImage() {super();

}/*** Destruction of the servlet.
*/

public voiddestroy() {super.destroy(); //Just puts "destroy" string in log

}public voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

doPost(request, response);

}public voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {/*导成pdf做了很久,但还是没能做出来,因为一直报

* java.lang.NoSuchMethodError: org.apache.avalon.framework.configuration.DefaultConfiguration.(Ljava/lang/String;)V的错误,

* 如果你知道如何解决这个错误,请告诉我一下,在此先谢过了。现在已经可以正确地将图片导成pdf了,程序是没有问题的

**/request.setCharacterEncoding("utf-8");//设置编码,解决乱码问题

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

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

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

filename= filename==null?"chart":filename;

ServletOutputStream out=response.getOutputStream();if (null != type && null !=svg) {

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

String ext= "";

Transcoder t= null;if (type.equals("image/png")) {

ext= "png";

t= newPNGTranscoder();

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

ext= "jpg";

t= newJPEGTranscoder();

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

ext= "pdf";

t=(Transcoder) new PDFTranscoder();//我将这儿的注释去掉了,因为导成pdf的问题已经解决

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

ext= "svg";

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

response.addHeader("Content-Type", type);if (null !=t) {

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

TranscoderOutput output= newTranscoderOutput(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.equals("svg")) {//out.print(svg);

OutputStreamWriter writer = new OutputStreamWriter(out, "UTF-8");

writer.append(svg);

writer.close();

}elseout.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();

}/*** Initialization of the servlet.

*

*@throwsServletException if an error occurs*/

public void init() throwsServletException {//Put your code here

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值