Highcharts导出服务甘特图不起作用



正在尝试使用highcharts导出服务器对甘特图进行服务器端渲染,但根本无法获得要渲染的系列数据。

根据文档,我尝试过通过命令行和作为节点模块运行导出,但我总是得到一个显示标题、副标题和系列名称的空图,但没有实际数据。

失败的甘特图呈现

所有基本的折线图示例配置都可以工作,我可以通过浏览器使用Highcharts.ganttChart方法渲染图表,所以我相信它特定于导出服务器的甘特图配置,或者与毫秒日期转换有关(正如您在屏幕截图中看到的,X轴不是以日期呈现的,而是以普通数字呈现的(。根据对其他线程的建议,我在node_modules/highcharts-export-server中运行build.js,为命令行尝试全局运行,为节点模块尝试本地项目,确保启用ganttmoment库,但这也没有帮助。

包括下面的选项json。我还没有找到专门用于导出服务器的gantt配置示例,所以这是我插入它们的最佳尝试:

{
"title": {
"text": "Gantt PoC"
},
"subtitle": {
"text": "Timeline"
},
"series": [
{
"name": "Gantt Demo",
"type": "gantt",
"data": [
{
"name": "Demo Task 1",
"id": "demo_task_1",
"start": 1564113600000,
"end": 1564718400000
},
{
"name": "Demo Task 2",
"id": "demo_task_2",
"start": 1564113600000,
"end": 1564718400000
}
]
}
],
"xAxis": {
"min": 1563681600000,
"max": 1571803200000
}
}

如果我的配置有任何明显的问题,如果我错过了准备环境的任何关键步骤,或者你可能有任何想法让我解决问题,请告诉我。谢谢

我也尝试过使用gantthart生成图像,只是我尝试了构造函数,你建议它能完美地工作,谢谢。

highcharts-export-server --infile gantt.json --outfile gantt.png --type png --constr ganttChart

事实上,我也尝试过HTTP Server,效果很好。感谢@pawel_d

const fs = require("fs");
const chartExporter = require('highcharts-export-server');
chartExporter.initPool();
const chartDetails = {
type: "png",
constr : 'ganttChart',
options: {
series: [{
data: [{
start: 1,
end: 10
}]
}]
}
};
chartExporter.export(chartDetails, (err, res) => {
// Get the image data (base64)
let imageb64 = res.data;
// Filename of the output
let outputFile = "bar.png";
// Save the image to file
fs.writeFileSync(outputFile, imageb64, "base64", function(err) {
if (err) console.log(err);
});
console.log("Saved image!");
chartExporter.killPool();
});

最新更新