日期:2014-05-17  浏览次数:20770 次

关于 highcharts 生成图片的问题
 请问,关于highcharts 怎么在本地生成图片? 不是导出
导出那个功能有的,但,现在要做的是生成本地图片
请问谁知道啊




package com.foxconn.highcharts.demo;

import java.io.IOException;
import java.io.OutputStreamWriter;
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;




public class SaveAsImage extends HttpServlet {

/**
 * 
 */
private static final long serialVersionUID = 1L;

/**
 * Constructor of the object.
 */
public SaveAsImage() {
super();
}

/**
 * Destruction of the servlet. <br>
 */
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletExceptionIOException {
doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

/*导成pdf做了很久,但还是没能做出来,因为一直报
    * java.lang.NoSuchMethodError: org.apache.avalon.framework.configuration.DefaultConfiguration.<init>(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 = new PNGTranscoder();
    } else if (type.equals("image/jpeg")) {
ext = "jpg";
t = new JPEGTranscoder();