我在 Fantom 中创建了一个网页,其中显示了在 HighCharts 中创建的许多图表,我正在使用我在 Phantomjs 中创建的脚本成功地将这个页面转换为 PDF。
问题是我总共有 4 个 HighChart,但第三个 HighChart 只出现在 PDF 中大约一半的时间。其他 3 个 HighCharts 100% 的时间出现在 pdf 中。下面是 HighChart 的 HighChart 代码,它仅显示 50% 的时间。
setTimeout(function () { var cchChart = Highcharts.chart('containerCHH',
{ chart: { type: 'column' },
title: {text: 'Cooling and Heating Hours'},
xAxis: {categories: ['TRTU39', 'TRTU40', 'TRTU41', 'TRTU42', 'TRTU43', 'TRTU44', 'TRTU45', 'TRTU46', 'TRTU47', 'TRTU48', 'TRTU49'],
crosshair: true },
yAxis: { min: 0, gridLineWidth: 1, minorGridLineWidth: 0, gridLineDashStyle: 'dash', GridColor: '#ECECED',
title: { text: 'Hours' }},
credits: { enabled: false },
tooltip: { enabled: false },
plotOptions: { column: { pointPadding: 0.2, borderWidth: 0 }},
series: [
{
name: 'Cooling Single Stage (Hr)',
data: [260,350,420,370,130,null,null,null,null], color:'#CCFFFE',
animation: false },
{
..etc
},
{
... etc
},
{
... etc
}]})}, 1);
我用这些 setTimeouts 设置了我的 phantomjs 脚本
resourceWait = 300,
maxRenderWait = 5000,
page.open(url, function (status) {
if (status !== "success") {
console.log('Unable to load url');
phantom.exit();
} else {
forcedRenderTimeout = setTimeout(function () {
console.log("Before Login - moving onto login. count: " + count);
login();
console.log("Past Login - moving onto render. count: " + count);
doRender();
}, maxRenderWait);
}
});
这是我在 Phantomjs 中的渲染超时
renderTimeout = setTimeout(doRender, resourceWait)
但是我增加多少超时似乎并不重要,它并没有提高 PDF 中的第三个 HighCharts 出现率。
我真的对这种情况感到困惑,并希望 HighChart 向导可以帮助我!在这一点上,我真的不认为这是一个 Phantomjs 问题。