5

私がやろうとしていること

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);

         }
4

1 に答える 1

3

次の設定を使用して、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
于 2013-05-29T07:26:02.570 に答える