私がやろうとしていること
with.php
を使用してページを開くexec
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);
}