`

解决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页面...

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

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

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

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

    MySql导出数据乱码的问题

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

    解决tableExport导出到excel中文乱码

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

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

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

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

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

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

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

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

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

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

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

    itext jar包组合-导出word文档案例,解决中文乱码问题

    本文将详细介绍如何使用iText Java库来创建、操作Word文档,并解决中文乱码的问题。 首先,我们需要理解iText库的核心功能。iText是一个开源的Java库,主要用于生成PDF和HTML文档,但通过一些扩展,它也可以用来...

    java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose

    java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 ...

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

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

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

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

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

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

    TOAD导出EXCEL文件时中文乱码解决办法.txt

    ### TOAD导出EXCEL文件时中文乱码解决办法 #### 背景介绍 在数据库管理和开发过程中,经常需要将查询结果...通过上述方法,可以有效地解决在使用TOAD导出Excel文件时遇到的中文乱码问题,提高工作效率和数据质量。

Global site tag (gtag.js) - Google Analytics