highcharts实现图片导出

highcharts默认情况下,是支持将图表导出为图片或打印功能的

在图表的右上角有两个按钮,主要用到的是它的导出属性-exporting

而highcharts的命令行导出功能--Nodejs 导出服务器,是对于需要自动生成图表、纯后端生成图表图片、批量生成图表的情况

使用也很方便,只需要安装nodejs导出服务器,有两种方式,分别是

直接安装npm包

npm install highcharts-export-server -g 

源代码安装:

git clone https://github.com/highcharts/node-export-server
npm install
npm link

然后命令行导出,nodejs导出服务器运行方法

highcharts-export-server <arguments>

Nodejs 导出服务器以模块的形式在 Nodejs 程序中使用,简单的示例代码

加载导出模块

const exporter = require('highcharts-export-server');

导出配置

var exportSettings = {
  type: 'png',
  options: {
    title: {
      text: 'My Chart'
    },
    xAxis: {
      categories: ["Jan", "Feb", "Mar", "Apr", "Mar", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
    },
    series: [{
      type: 'line',
      data: [1, 3, 2, 4]
    }, {
      type: 'line',
      data: [5, 3, 4, 2]
    }]
  }
};

启动 Phantomjs 线程池

exporter.initPool();

执行导出

exporter.export(exportSettings, function(err, res) {
  //导出的结果包含在 res 中
  //如果导出结果不是 PDF 或 SVG,那么结果是 base64 编码的内容,可以通过 res.data 来获取
  //如果导出结果是 PDF 或 SVG,那么结果是文件名,可以通过 res.filename 来获取

  //当所有的操作完毕后,关掉线程池并推出程序
  exporter.killPool();
  process.exit(1);
});