highcharts 结合phantomjs纯后台生成图片

highcharts 这个图表展示插件我想大家应该都知道,纯javascript编写,相比那些flash图表插件有很大的优势,至少浏览器不用考虑是否装了flash插件,功能也非常的强大,详细请看官网 ,我就不做多介绍了。

那今天咱们讨论的难题是我们平时用highchart生成图片时,首先要在前端展示出图表,然后通过图表的API 按钮或者自定义的按钮 来向后台发起请求,后台获取到图片的SVG信息时,然后根据SVG的信息生成对应的图片或者PDF文件输出到流供客户端下载或者直接保存在服务端。

那么这个图片生成必须依赖前台生成的图表来触发,那有些图片我们又想自动生成又不需要前端,生成后直接通过邮件发送或者写入word文件,该如何做呢?

有人会想可以模拟前台自动向后台发送请求,我这样试过,效率非常不敬人意!后来看了官方的一些介绍,引入了phantomjs 这个好东西,它是个javascript引擎库,基于webkit内核,能解析前台的HTML及javascript并生成对应的图片,最重要的一点是它能够以服务的形式独立运行在后端,接下来是详细步骤:

查看更多

如何使用highcharts自定义按钮导出图片

接触highcharts这个图表插件已经有好几年了,摸打滚爬到现在可以说对highchart已经有一定的了解了

首先 Highcharts 本身就提供了导出图片的功能,只需要在配置中增加相应的参数即可

1
2
3
4
5
navigation : {
buttonOptions : {
enabled : true
}
}

设置完毕即可导出图片了,但是这种方式有个缺点,就是导出图片时会请求highchart官方的服务器生成图片,最后返回客户端给用户下载,我们可以在官方源码中看到这样一段代码:

1
2
3
4
5
6
defaultOptions.exporting = {
//enabled: true,
//filename: 'chart',
type: 'image/png',
url: 'http://export.highcharts.com/'
}

那如何请求自己的服务器生成对应的图片呢?官方API已经为我们留出了对应的接口供我们调用
点击这里可以查看exportChart相关属性

查看更多