gpt4 book ai didi

php - 制作 wkhtmltoimage 等到 Google Chart API 完全呈现图表

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:41:39 28 4
gpt4 key购买 nike

我想做什么

使用 exec 打开一个 .php 页面

exec('./wkhtmltoimage-i386 abcdef.com/combined.php chart.jpg', $op, $er);

这样我就可以得到渲染图表的图像。

实际发生了什么

在运行包含上述命令的页面时根本不会创建 chart.jpg

调试

(1) 我在浏览器中直接执行combined.php,图表按预期显示。所以combined.php代码没有错。

(2) 我也试过放

<h1>Hello there!</h1>

combined.php 中,这导致 chart.jpg 被创建并且输出显示为图像。

所以这让我相信wkhtmltoimage需要等到图表被渲染出来,然后执行转换操作。问题是我不知道如何让转换过程等到一切都完成。

用于准备图表的 Javascript 代码

google.load('visualization', '1', {'packages':['corechart']});
google.setOnLoadCallback(drawChart);

function drawChart() {
var data = new google.visualization.DataTable(<?php echo $jsonTable; ?>);
var options = {
title: 'TNS',titleTextStyle: {color: "green"}, hAxis: {title: "MONTH", titleTextStyle: {color: "green"}}, vAxis: {title: "Percentage", titleTextStyle: {color: "green"},viewWindowMode: 'explicit',
},
max: 100,
min: 0,
legend: {
position: 'bottom'
},
width:1000,
height:550,
pointSize: 8,
backgroundColor:'#ddd9c3',
is3D: 'true',
height:550,
vAxis: {
gridlineColor: '#9d9983'
},
colors: ['black', 'red', 'green', 'blue', 'yellow']
};


var chart = new google.visualization.LineChart(document.getElementById('tns1'));
chart.draw(data, options);

}

最佳答案

您可以使用以下设置来呈现 JavaScript 内容。

--enable-javascript
--javascript-delay

我假设此文档是最新的

http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltoimage_0.10.0_rc2-doc.html

可以尝试

exec('./wkhtmltoimage-i386 --enable-javascript --javascript-delay 1000 abcdef.com/combined.php chart.jpg', $op, $er);

取决于让一切偏离轨道需要多长时间。请记住,可能存在不同的安全限制。

您肯定会想要调查的一些其他选项

--run-script             // run a specific script after loading
--debug-javascript // return javascript debug output
--no-stop-slow-scripts
--enable-local-file-access

关于php - 制作 wkhtmltoimage 等到 Google Chart API 完全呈现图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16807798/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com