2017-03-07 13 views
0

私はwkhtmltopdf(0.12.4パッチ付きqt)とphpwkhtmltopdfを使ってhtmlからPDFファイルを作成しています。これらのPDFの中には、いくつかの図表を含める必要があり、これを行うには私はGoogleグラフを使っています。私が直面している問題は、チャートを含むいくつかのページを持つpdfを作成しようとするときに現れます。プロセスは次のメッセージでエラーになります。WkhtmltopdfとGoogle Charts

Loading pages (1/6) 
[>               ] 0% 
[>               ] 0% 
[>               ] 1% 
[=>               ] 2% 
[=>               ] 3% 
[==>               ] 4% 
[===>              ] 5% 
[===>              ] 6% 
[====>              ] 7% 
[====>              ] 8% 
[=====>              ] 9% 
[======>              ] 10% 
[======>              ] 10% 
[=======>             ] 13% 
[==========>             ] 18% 
[============>            ] 21% 
[===============>           ] 26% 
[===============>           ] 26% 
[==================>           ] 30% 
[=====================>          ] 35% 
[======================>          ] 38% 
[=========================>         ] 43% 
[===========================>        ] 46% 
[==============================>        ] 51% 
[=================================>       ] 55% 
[===================================>      ] 59% 
[=====================================>      ] 63% 
[========================================>     ] 67% 
[==========================================>     ] 71% 
[=============================================>    ] 76% 
[=============================================>    ] 76% 
[==============================================>    ] 78% 
[==============================================>    ] 78% 
[===============================================>   ] 79% 
[================================================>   ] 80% 
[================================================>   ] 81% 
[====================================================>  ] 87% 
[=====================================================>  ] 89% 
[======================================================>  ] 90% 
[======================================================>  ] 91% 
[=======================================================> ] 92% 
[=========================================================> ] 95% 
[============================================================] 100% 

表示されているように、非常に有用なエラーではありません。

私はチャートを読み込むチャンスを与えるために1秒の遅延を使用しています。この遅延を取り除くと、PDFはエラーなく作成されますが、グラフは表示されません。また、遅延を1秒に保ちながらチャートを含むページ数を減らすと、すべてが完全に機能します。 私は5ページの "チャートページ"で10ページのPDFを作成することができますが、6ページで11ページを試すと失敗します。 1つのPDFで10または15のようなチャートを扱えるようにする必要があります。

このエラーに関する洞察や代替アプローチの提案は高く評価されます。ありがとう!

+0

@WhiteHat、提案に感謝します。私は運が無ければそれを試みた。以前と同じ結果が得られました。 – saudes

答えて

0

グラフを含む負荷の重いページでも同様の問題が発生しました。タイミングを正しく取るのはやっかいだし、何時間もかけて私の髪を引っ張ってから、長い時間をかけて方程式の両辺が正確に時間を計られていることがわかった。 wkhtmltopdf待ち状態。

Googleのチャート側のIEは、私が実際のライブラリプルにJSの遅延を追加することによって、愚かなクローム「遅いページのロード」というエラーを防ぐのに十分な遅延を含める:

setTimeout(function(){google.load('visualization', '1.1', {'callback':'drawChart', 'packages':['corechart', 'bar']})}, 1200); 

1200は私のために正常に動作しますあなたがGoogleから何を引っ張っているかに応じて、それをさらに上げる必要があるかもしれません。

私にとって重要なのは、wkhtmltopdfが遅延のバランスを調整していて、それにもう少し遅延を追加することでした(Google遅延+処理遅延)。このページでは、私はpdf側で2200ミリ秒の遅延を追加しました。

--javascript-delay: 2200 

2つのアイテムがバランスよく話すまで、まったく動作しません。あなたが言ったように、チャートは遅れなく表示されません。これは、エラーの半分が解決された可能性が高いことを示しています。他の側に遅れを加え、それが役立つかどうかを見てみるとよいでしょう。