网上很多都是自己写一个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导出PDF时出现的中文乱码问题,以及提供的字体文件如何解决这个问题。 ecside是一款基于Java的开源Web应用框架,它提供了丰富的功能,包括数据导出。在某些情况下,当ecside导出包含...
可以解决win7中ARCgis10.5属性表导出dbf乱码问题,修改注册表
本文将详细讨论如何在ASP.NET环境中解决Highcharts导出图片时的中文乱码问题。 首先,我们要理解问题的根源。Highcharts默认使用UTF-8编码,而ASP.NET应用可能使用其他编码方式,比如GB2312或GBK,这就可能导致在...
总的来说,解决Highcharts导出图片中的中文乱码问题需要综合考虑前端的Highcharts配置、后端的服务器环境、中间可能涉及的代理服务以及所有环节的字符编码设置。通过仔细排查并尝试上述方法,应该能够成功解决这个...
本文将深入探讨Highcharts出现乱码的原因,并提供一系列的解决方案,帮助你解决这一问题。 **乱码问题的原因** 1. **字符编码不一致**:在HTML文档和Highcharts中,字符编码不匹配可能导致乱码。例如,HTML页面...
仅针对Arcgis10.7 导出SHP dbf后乱码的解决办法,下载后关闭arcgis,直接双击运行就可。
通过上述步骤,可以有效地解决ASP.NET导出Excel时的乱码问题,确保数据的准确性和用户的良好体验。然而,重要的是要始终关注编码细节,因为不同的数据来源和环境可能会引入新的挑战。持续测试和优化编码策略是保持...
MySql导出数据乱码的问题,MySql导出数据乱码的问题,MySql导出数据乱码的问题,MySql导出数据乱码的问题,MySql导出数据乱码的问题
解决tableExport导出到excel中文乱码,解决tableExport导出到excel中文乱码,解决tableExport导出到excel中文乱码,解决tableExport导出到excel中文乱码
5. **调试和日志记录**:在解决问题的过程中,使用日志记录工具记录PD4ML的输出信息,可以帮助定位问题所在。例如,查看PD4ML是否成功加载了指定的字体,或者编码设置是否被正确应用。 在提供的“test”文件中,...
这个问题通常是由于编码格式不匹配导致的,下面我们将详细探讨如何解决PLSQL导出CSV后中文乱码的问题。 首先,我们需要了解CSV文件本身的特点。CSV是一种通用的、简单的数据交换格式,它使用逗号分隔每一列数据,以...
仅针对Arcgis10.6 导出SHP dbf后乱码的解决办法,下载后关闭arcgis,直接双击运行就可。
总之,解决ArcMap Desktop导出dbf文件时出现中文乱码的问题需要理解dbf文件的性质、编码的重要性以及如何利用插件或更新软件来解决此类兼容性问题。通过正确的方法和工具,可以确保在处理中文数据时不会出现乱码,...
总的来说,解决FastReport的中文显示不全和导出乱码问题,需要从两个方面入手:一是确保FastReport自身以及与其交互的数据源使用相同的字符编码;二是正确设置导出格式的编码参数,以适应目标格式的编码要求。同时,...
本文将详细介绍如何使用iText Java库来创建、操作Word文档,并解决中文乱码的问题。 首先,我们需要理解iText库的核心功能。iText是一个开源的Java库,主要用于生成PDF和HTML文档,但通过一些扩展,它也可以用来...
java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 ...
通过以上步骤和知识点,你应该能有效地解决Navicat与MySQL之间的导出导入乱码问题。在实际操作中,务必细心检查每个环节,确保字符集的一致性,这样才能保证数据迁移的准确性和完整性。如果问题依然存在,可能需要...
解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码...
在IT领域,乱码问题是一个常见的困扰,尤其是在处理文本数据时。...乱码问题虽然麻烦,但只要了解其产生原因,掌握解决方法,就能有效地应对。在日常工作中,保持良好的编码习惯和规范的操作流程,是预防乱码的关键。
### TOAD导出EXCEL文件时中文乱码解决办法 #### 背景介绍 在数据库管理和开发过程中,经常需要将查询结果...通过上述方法,可以有效地解决在使用TOAD导出Excel文件时遇到的中文乱码问题,提高工作效率和数据质量。