方案一:
在exporting.js中找到enctype:"multipart/form-data", 在后面增加上“,encoding: 'multipart/form-data'”。
方案二:
自己建Servlet导出。
batik的jar包这里有下载http://blog.renren.com/share/225362267/6752347325
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 for the batik Transcoder */ public class HighChartsServlet extends HttpServlet { private static final long serialVersionUID = 3920224595120519682L; public HighChartsServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,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(); } }
web.xml中配置下serlvet:
<!--begin exporter highcharts-->
<servlet>
<servlet-name>HighChartsServlet</servlet-name>
<servlet-class>com.friendone.mrms.ws.material.HighChartsServlet</servlet-class>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HighChartsServlet</servlet-name>
<url-pattern>/getHighchartServlet</url-pattern>
</servlet-mapping>
<!--over exporter highcharts-->
然后修改highcharts的exporting.js:
url: 'http://export.highcharts.com/'改为本地的servlet地址
url:"http://localhost:8080/cmrm/getHighchartServlet"
这就可以本地导出图片了,在servlet里可以自己设置编码消除中文乱码。
相关推荐
总的来说,解决Highcharts导出图片中的中文乱码问题需要综合考虑前端的Highcharts配置、后端的服务器环境、中间可能涉及的代理服务以及所有环节的字符编码设置。通过仔细排查并尝试上述方法,应该能够成功解决这个...
本文将详细讨论如何在ASP.NET环境中解决Highcharts导出图片时的中文乱码问题。 首先,我们要理解问题的根源。Highcharts默认使用UTF-8编码,而ASP.NET应用可能使用其他编码方式,比如GB2312或GBK,这就可能导致在...
"highcharts本地导出图片案例"就是针对这一需求进行的实践。 Highcharts的本地图片导出功能允许用户在不借助服务器的情况下,直接在客户端生成高质量的图像文件。这种功能主要通过集成`Exporting Module`来实现,该...
"Highcharts客户端导出"是Highcharts的一个特性,允许用户在不依赖服务器的情况下,直接在浏览器端将图表保存为图片、PDF或其他格式。这个功能提高了用户体验,因为导出过程快速且数据隐私得到了更好的保护。 首先...
关于HighCharts导出模块的 Net版的导出服务 GitHub里下载的 https://github.com/imclem/Highcharts-export-module-asp.net 把里面用到的 (sharpPDF.dll) (Svg.dll) 源码也怎和在一起了,有兴趣可以看看; 之前也下...
Highcharts 导出图片,具体的图片导出的代码,带吗代码代码代码
在实际项目中,为了提高用户体验并满足离线导出图表的需求,开发者常常需要自建导出服务器,以便避免依赖Highcharts官方网站的导出服务。本教程将详细介绍如何在ASP.NET MVC框架下实现一个Highcharts导出服务器。 ...
这个项目提供了一个纯JavaScript的解决方案,允许在浏览器中实现Highcharts图表的本地导出,无需与服务器通信。 实现客户端导出的关键在于使用`canvg`和`xlsx`这两个库。`canvg`库用于将SVG图表转换为Canvas元素,...
HighCharts导出图片是发现请求的是官网,于是找了一下,整理了这个导出请求本地服务导出png、jpg、svg和pdf的demo (GitHub里找的 https://github.com/imclem/Highcharts-export-module-asp.net 把里面用到的 (sharp...
在.NET C#环境中,实现HighCharts图表的导出功能,可以通过创建一个服务类和相关的控制器来完成。下面将详细解释这个过程。 首先,`ExportHighChart.cs`是关键的工具类,它包含了将HighCharts图表转换为图片的核心...
highcharts导出图片的后台代码,这样就不用从highcharts官网服务器上进行图片导出了,成了一个本地的服务器!
本文将深入探讨如何在C#环境下利用Highcharts .NET库实现图表的导出,并支持中文字符,以及如何将SVG格式转换为JPG、PNG、PDF和SVG等其他常见格式。 首先,要实现Highcharts .NET导出图片功能,你需要安装相关的...
包括Java导出Highcharts需要的4个jar包(其中highcharts-downimage.jar是下载图像的实现类,已经编译,并包含源码,其它3个jar包是相关引用类),以及struts配置。 使用时,只要将common_struts.xml加入struts配置...
- 解决乱码问题的关键是确保Linux系统中安装了Highcharts渲染所需的字体。在本例中,`simsun.ttc`文件是宋体的TrueType字体集合,我们需要将其安装到系统字体目录。通常,这个目录是`/usr/share/fonts`或`~/.local/...
首先,Highcharts本身并不直接支持将图表导出到Excel或PDF,但其提供了一个名为Exporting的模块,通过这个模块,我们可以将图表转换为图像格式,然后进一步利用其他工具(如jsPDF或FileSaver.js)将图像转换为PDF,...
### highcharts本地导出图片_服务端代码 #### 概述 Highcharts 是一款非常流行的JavaScript图表库,它提供了一套完整的API以及丰富的图表样式,适用于各种数据可视化需求。Highcharts 支持将图表导出为不同的格式,...
HighCharts导出图片是发现请求的是官网,于是找了一下,整理了这个导出请求本地服务导出png、jpg、svg和pdf的demo (GitHub里找的 https://github.com/imclem/Highcharts-export-module-asp.net 把里面用到的 (sharp...
在.NET C#环境中,如果你想利用Highcharts的功能,特别是在服务器端导出图表为图片,就需要进行一些特定的处理。以下是一个关于如何在.NET C#中实现Highcharts图表导出的详细步骤和知识点: 1. **Highcharts与SVG**...
如果你提供的压缩包文件`Highcharts导出图片.net`是一个.NET平台下的解决方案,那么可能包含了处理这种POST请求的代码示例。在.NET环境中,可以使用如`HttpListener`或ASP.NET MVC来接收和处理这个请求,将SVG转换为...
Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。目前HighCharts支持的图表类型有曲线图、...