【问题标题】:Export multiple charts with one request一次请求导出多个图表
【发布时间】:2016-09-16 10:48:57
【问题描述】:

在页面上我有 2 个图表。它们是使用 Highcharts 库构建的。

我需要将它们全部导出为PNG 文件。所以我添加按钮,点击我需要有 2 个单独的 png 文件。

我有功能:

myApp.highchart.export.create = function (elementId, filename) {
    var chart = $(elementId).highcharts();
    chart.exportChart({ type: 'image/png', filename: filename, sourceWidth: chart.chartWidth });
}

我传递了每个图表的这个函数 ID,但结果我总是只得到最后一个图表...我尝试添加 timeout 但这没有帮助。

我查看了浏览器中的“网络”选项卡,始终只看到 1 个对 http://export.highcharts.com/ 的请求

有人可以帮我吗?


这是导出 2 个图表的示例,但在我的情况下,这也无济于事(例如,它使用了一些插件 highcharts-export-clientside,但我使用简单的 exporting.js)


UPD:我添加了highcharts-export-clientside插件,但仍然使用highcharts方法exportChart(插件中有exportChartLocal)。使用这个插件可以导出多个图表,但是在png 我得到了错误的格式化图表,我所有的样式都被破坏了。所以我不知道在不使用任何it方法时这个插件有什么影响。


在 FF 中似乎也可以进行多个导出,但在 Chrome 中却不行。


简单逻辑示例:http://jsfiddle.net/6mn2j5pL/

【问题讨论】:

    标签: javascript jquery charts highcharts


    【解决方案1】:

    这可能会帮助您修复它。

    您可以使用 Highcharts.charts 获取图表数组。然后 您可以使用 Highcharts.each 循环您的图表并导出 他们一个接一个。

    http://forum.highcharts.com/highcharts-usage/how-to-export-multiple-charts-to-separate-image-files-t35191/

    此论坛中提供的解决方案似乎也适用于 chrome。

    【讨论】:

    • 是的,我试过了...但是我有饼图,里面有一些文字,这种方法破坏了文字的风格...所以不知道为什么会这样(文本的样式设置在饼图的中间,导出后我在顶部得到这个文本,它与图表系列重叠)
    • 你能提供小提琴吗?
    • 找到了类似临时解决方案:我可以通过传递一些动态 iframe-target 或只是“_blank”来导出图表。这适用于所有浏览器(IE 11、Chrome、Mozilla 和 Safari)
    猜你喜欢
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    相关资源
    最近更新 更多