`

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导出图片ASP.NET解决中文乱码问题

    本文将详细讨论如何在ASP.NET环境中解决Highcharts导出图片时的中文乱码问题。 首先,我们要理解问题的根源。Highcharts默认使用UTF-8编码,而ASP.NET应用可能使用其他编码方式,比如GB2312或GBK,这就可能导致在...

    highcharts导出图片到Excel和Pdf文件中

    - 查看博文链接(已提供)了解更多关于集成Highcharts导出功能的详细步骤和代码示例。 总结来说,实现Highcharts图表到Excel和PDF的导出,需要理解Highcharts的Exporting模块,熟悉JavaScript图像处理和PDF生成库...

    处理highcharts导出图片出现中文乱码的问题

    在Highcharts的导出功能中,它会将图表转换为SVG格式,然后通过服务器端的工具(如 PhantomJS 或 ImageMagick)将其渲染为PNG、JPEG或其他图像格式。在这个过程中,如果服务器或工具不正确地处理中文字符的编码,就...

    highcharts导出服务器的asp mvc实现

    本教程将详细介绍如何在ASP.NET MVC框架下实现一个Highcharts导出服务器。 首先,我们需要了解Highcharts的导出功能。Highcharts内置的导出功能允许用户将图表以图像(JPEG、PNG、PDF或SVG)的形式保存或打印,但是...

    highcharts客户端导出

    首先,我们要理解Highcharts导出功能的工作原理。在默认情况下,Highcharts使用一个基于服务器的导出服务,将图表转换为图像或PDF。然而,"客户端导出"功能消除了对服务器的依赖,所有处理都在用户的浏览器内部完成...

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

    在.NET C#环境中,如果你想利用Highcharts的功能,特别是在服务器端导出图表为图片,就需要进行一些特定的处理。以下是一个关于如何在.NET C#中实现Highcharts图表导出的详细步骤和知识点: 1. **Highcharts与SVG**...

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

    本文将详细介绍如何使用Highcharts的导出功能来实现将图表导出为图片并保存到本地指定路径。 首先,Highcharts提供了内置的导出功能,这得益于它的Exporting模块。要启用这个功能,我们需要在配置对象中添加`...

    highcharts 导出图片 例子 .net C# Demo 工具类

    在.NET C#环境中,实现HighCharts图表的导出功能,可以通过创建一个服务类和相关的控制器来完成。下面将详细解释这个过程。 首先,`ExportHighChart.cs`是关键的工具类,它包含了将HighCharts图表转换为图片的核心...

    HighCharts导出的Servlet

    "HighCharts导出的Servlet"就是为了解决这一需求而设计的。 Servlet是一种Java编程语言编写的服务器端程序,主要用于扩展服务器的功能。在HighCharts的上下文中,这个Servlet的作用是接收来自前端HighCharts图表的...

    HighCharts导出图片和Pdf

    本教程将详细介绍如何在使用SpringMVC框架的项目中实现HighCharts图表的导出功能。 1. **HighCharts的基本用法** - 首先,引入HighCharts的JavaScript库。这通常通过在HTML文件中添加CDN链接或下载库并将其放置在...

    highchars导出

    1. **Highcharts导出功能**:Highcharts自身支持图表的导出功能,用户可以将图表保存为PNG、JPEG、PDF或SVG格式的图像。这个功能是通过Highcharts的exporting模块实现的,它提供了内置的服务器端处理来完成导出任务...

    Highcharts-4.0.1.zip

    "exporting-server"目录可能包含了关于Highcharts导出功能的相关代码和配置。Highcharts支持将图表导出为各种图像格式(如JPEG、PNG、PDF等),这部分可能包括了处理这些导出请求的服务器端逻辑。 "js"目录则存放了...

    highcharts本地导出图片案例

    Highcharts的本地图片导出功能允许用户在不借助服务器的情况下,直接在客户端生成高质量的图像文件。这种功能主要通过集成`Exporting Module`来实现,该模块提供了多种导出选项,包括不同的图像格式(如PNG、JPEG、...

    highcharts客户端导出,本地导出

    首先,我们要理解Highcharts的默认导出功能。Highcharts内置了导出模块,允许用户将图表导出为PNG、JPEG、PDF或SVG格式的图像,同时也支持将数据导出为CSV或Excel格式。这些功能通常依赖于服务器端的服务,当用户...

    Highcharts用Asp.Net导出jpg,png图片程序

    本文将详细介绍如何在Asp.Net环境中实现Highcharts图表的jpg和png图片导出功能。 首先,要实现这个功能,我们需要一个服务器端的处理程序,因为浏览器端的JavaScript无法直接将Highcharts图表转换为图片。一个常见...

    Highcharts .net(C#)导出图片支持中文svg转jpg等

    首先,要实现Highcharts .NET导出图片功能,你需要安装相关的NuGet包。这通常可以通过Visual Studio的管理NuGet程序包工具完成,搜索"HighchartsExport"并安装。这个库提供了C#接口,可以调用Highcharts的服务器端...

    highcharts制作报表本地导出图片

    4. 实现本地导出图片:Highcharts提供了内置的导出功能,允许用户将图表导出为PNG、JPEG、PDF或SVG格式。默认情况下,这个功能会打开一个新的窗口或者弹出对话框让用户下载。要实现本地导出,我们可以监听导出事件并...

    highcharts本地导出图片_服务端代码

    在某些场景下,用户可能希望在本地服务器上实现图表的导出功能,而不是依赖于Highcharts提供的在线导出服务。本文将详细介绍如何通过服务端代码实现Highcharts图表的本地导出。 #### 需要的JAR包 为了实现...

    如何通过java实现highcharts导出图片至excel

    "Java实现Highcharts导出图片至Excel" 本文主要介绍了如何通过Java实现Highcharts导出图片至Excel。下面我们将详细介绍该过程的知识点。 1. 目的 通过Java后台实现将前端页面的Highcharts图表导出至生成的Excel...

    Highcharts本地VS2008导出

    在VS2008环境下,实现Highcharts的本地导出功能,可以帮助用户将图表保存为图片或者PDF等格式,便于离线查看或打印。 首先,我们需要了解如何在VS2008项目中引入Highcharts的DLL文件。Highcharts提供了相应的服务器...

Global site tag (gtag.js) - Google Analytics