Highcharts JS:只需点击一下即可下载当前网站的所有图表

时间:2012-12-15 19:48:29

标签: export highcharts

我们在Webapp中使用Highcharts JS。我们还使用" highcharts exports"这样我们的客户只需点击一下即可下载图表或饼图。

现在我想添加一些功能,您可以下载所有图表,只需点击一下即可通过highcharts显示。这样我们的客户就不必单独下载每个图表。在highcharts中是否有这样的功能?

2 个答案:

答案 0 :(得分:2)

我找不到一个简单的方法来做到这一点。

highcharts exporting module is submitting a POST请求highcharts服务器(传入图表的SVG)以生成PDF或PNG。

我尝试连续调用chart.exportChart(),但这不起作用,因为第一次调用会更改文档焦点,后续调用也不会触发。所以我认为你有两个选择:

  1. 做服务器端。让您的javascript返回所有图表的SVG(chart.getSVG()),并编写一个服务器端脚本,生成POST requestszipping生成的文件并返回客户端。

  2. 保持客户端。获取图表对象的SVG并对其进行操作以将多个图表嵌入到一个SVG文档中。然后向highcharts服务器发出请求。这样您就可以获得一个包含多个图表的PDF文档。

答案 1 :(得分:0)

我就是这样做的:

  1. 使用PhantomJS的hekp设置您自己的导出服务器。 (这里是http://www.highcharts.com/articles/2-news/52-serverside-generated-charts
  2. 的快捷方式
  3. 通过AJAX将每个图表数据发送到PhantomJS导出服务。
  4. 将导出的PNG与服务器端脚本(php或py)合并到一个图像,或者在PhantomJS的帮助下,将所有页面全部渲染,栅格化并导出为一个并通过AJAX将其路径发送回前端。
  5. 接收图片并让用户下载:)。
  6. 我在最近为Packt创建的教程视频中详细解释了前两个步骤:https://www.packtpub.com/web-development/learning-highcharts-video

    我希望它有所帮助。