`

解决highchats导出图片乱码问题

阅读更多

网上很多都是自己写一个servlet,然后url改成自己的。但是servlet只支持IE,在google浏览器上得不到参数值,所以改造servlet成为action。其中需要引入三个jar包。三个jar包在附件。

package com.creditease.ccsp.action;

import java.io.StringReader;


import javax.servlet.ServletOutputStream;

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;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;


@Namespace("/manage")
@ParentPackage("manage")
public class ImageExportAction extends ActionImpl{

    /**
     * 
     */
    private static final long serialVersionUID = 7547110498655678209L;
    
    
 
    
    @Action(value = "exportChart", results = { @Result(name = "success", type = "json") }) 
    public String execute() throws Exception {
    	
    	  request.setCharacterEncoding("utf-8");//注意编码
    	  String type = request.getParameter("type");
          String svg = request.getParameter("svg");
          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();
     
          } 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();   
          return NONE;
    }




	@Override
	public Object getModel() {
		// TODO Auto-generated method stub
		return null;
	}
    
}

 

分享到:
评论

相关推荐

    解决ecside导出文件乱码问题

    本文将详细讨论如何解决ecside导出PDF时出现的中文乱码问题,以及提供的字体文件如何解决这个问题。 ecside是一款基于Java的开源Web应用框架,它提供了丰富的功能,包括数据导出。在某些情况下,当ecside导出包含...

    解决win7中ARCgis10.5属性表导出dbf乱码问题

    可以解决win7中ARCgis10.5属性表导出dbf乱码问题,修改注册表

    Highcharts导出图片ASP.NET解决中文乱码问题

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

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

    总的来说,解决Highcharts导出图片中的中文乱码问题需要综合考虑前端的Highcharts配置、后端的服务器环境、中间可能涉及的代理服务以及所有环节的字符编码设置。通过仔细排查并尝试上述方法,应该能够成功解决这个...

    highchats_乱码解决方案

    本文将深入探讨Highcharts出现乱码的原因,并提供一系列的解决方案,帮助你解决这一问题。 **乱码问题的原因** 1. **字符编码不一致**:在HTML文档和Highcharts中,字符编码不匹配可能导致乱码。例如,HTML页面...

    displaytag-1.1.1-execle@cvs导出中文乱码问题解决.jar

    displaytag-1.1.1-execle@cvs导出中文乱码问题解决.jar

    ASP.NET导出Excel乱码的终极解决方案

    通过上述步骤,可以有效地解决ASP.NET导出Excel时的乱码问题,确保数据的准确性和用户的良好体验。然而,重要的是要始终关注编码细节,因为不同的数据来源和环境可能会引入新的挑战。持续测试和优化编码策略是保持...

    解决tableExport导出到excel中文乱码

    解决tableExport导出到excel中文乱码,解决tableExport导出到excel中文乱码,解决tableExport导出到excel中文乱码,解决tableExport导出到excel中文乱码

    MySql导出数据乱码的问题

    MySql导出数据乱码的问题,MySql导出数据乱码的问题,MySql导出数据乱码的问题,MySql导出数据乱码的问题,MySql导出数据乱码的问题

    解决PD4ML导出pdf中文乱码问题

    5. **调试和日志记录**:在解决问题的过程中,使用日志记录工具记录PD4ML的输出信息,可以帮助定位问题所在。例如,查看PD4ML是否成功加载了指定的字体,或者编码设置是否被正确应用。 在提供的“test”文件中,...

    PLSQL导出CSV后中文乱码解决办法

    这个问题通常是由于编码格式不匹配导致的,下面我们将详细探讨如何解决PLSQL导出CSV后中文乱码的问题。 首先,我们需要了解CSV文件本身的特点。CSV是一种通用的、简单的数据交换格式,它使用逗号分隔每一列数据,以...

    解决arcgis arcmap 10.7导出DBF乱码.reg

    仅针对Arcgis10.7 导出SHP dbf后乱码的解决办法,下载后关闭arcgis,直接双击运行就可。

    解决fastreport中文显示不全和导出乱码

    总的来说,解决FastReport的中文显示不全和导出乱码问题,需要从两个方面入手:一是确保FastReport自身以及与其交互的数据源使用相同的字符编码;二是正确设置导出格式的编码参数,以适应目标格式的编码要求。同时,...

    解决linux下oracle中文乱码问题,添加中文支持

    解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码...

    乱码解决 乱码解决 乱码解决 乱码解决 乱码解决

    在IT领域,乱码问题是一个常见的困扰,尤其是在处理文本数据时。...乱码问题虽然麻烦,但只要了解其产生原因,掌握解决方法,就能有效地应对。在日常工作中,保持良好的编码习惯和规范的操作流程,是预防乱码的关键。

    解决ArcMap Desktop 10.1-10.6 导出dbf出现乱码.rar

    总之,解决ArcMap Desktop导出dbf文件时出现中文乱码的问题需要理解dbf文件的性质、编码的重要性以及如何利用插件或更新软件来解决此类兼容性问题。通过正确的方法和工具,可以确保在处理中文数据时不会出现乱码,...

    解决navcat>mysql导出导入乱码问题

    通过以上步骤和知识点,你应该能有效地解决Navicat与MySQL之间的导出导入乱码问题。在实际操作中,务必细心检查每个环节,确保字符集的一致性,这样才能保证数据迁移的准确性和完整性。如果问题依然存在,可能需要...

    FastReport导出PDF 乱码和报错dataonly问题解决

    首先你的fastreport正常可用 替换源码文件到安装地址 C:\Program Files\FastReports\FastReport 4\Source\ExportPack 调用代码如下: frxReport1.LoadFromFile('..\report\abc.fr3'); frxReport1.PrepareReport;...

    乱码问题的解决

    "乱码问题的解决" 在 Web 开发中,乱码问题是常见的难题之一。乱码问题的出现主要是由于编码不一致引起的。编码不一致可能出现在多个方面,如页面编码、服务器编码、客户端编码、数据库编码等。在本文中,我们将...

    ArcGIS10.2.1/10.2.2导出dbf用Excel打开乱码的解决方案

    然而,在使用ArcGIS 10.2.1或10.2.2版本时,有时会遇到一个问题:当导出的DBF文件用Excel打开时出现乱码。这个问题主要涉及到字符编码的兼容性问题。 ArcGIS在导出DBF文件时,默认可能使用的是特定的字符集,而...

Global site tag (gtag.js) - Google Analytics