2017-04-24 40 views
1

我有大约100个图表要输出到可打印报告。在Internet Explorer中有100个图表会很慢。有没有解决方法?用图像替换highcharts报告?

+0

难道仅仅100个图表或100级的图表与文字?如果要将每个图表导出为单个图像,则可以使用批量导出,如果您运行自己的导出服务器(https://github.com/highcharts/node-export-server)。如果你想与文本交错,那么可能会生成一个包含所有项目的页面,并从浏览器内导出为PDF(IE浏览器速度较慢,但​​根据每个图表中的数据量而定,任何浏览器速度都可能较慢)。 – wergeld

回答

0

您可以将POST请求发送到导出服务器,以导出所有图表,而无需在浏览器中实际呈现它们。

const options = { 
    chart: {}, 
    xAxis: { 
    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 
     'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' 
    ] 
    }, 
    series: [{ 
    data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], 
    type: 'column' 
    }] 
} 
const data = { 
    options: JSON.stringify(options), 
    filename: 'test.png', 
    type: 'image/png', 
    async: true 
} 
const exportUrl = 'https://export.highcharts.com/' 
$.post(exportUrl, data, function(data) { 
    const imageUrl = exportUrl + data 
    const urlCreator = window.URL || window.webkitURL 
    document.querySelector("#image").src = imageUrl 
}) 

// You can uncomment in order to render chart 
// const chart = Highcharts.chart('container', options) 

活生生的例子: https://jsfiddle.net/28098mfj/