2017-03-07 107 views
0

我使用wkhtmltopdf(0.12.4修補qt)和phpwkhtmltopdf從html創建PDF文件。在這些PDF中的一些中,我需要包括幾個圖表,並且爲此我一直使用谷歌圖表。我目前遇到的問題是在嘗試創建一個包含多個包含圖表的頁面的PDF時出現的。該過程出錯,出現以下消息:Wkhtmltopdf和谷歌圖表

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秒的js延遲,以便讓圖表有機會加載。如果我刪除這個延遲,PDF創建時沒有錯誤,但沒有顯示任何圖表。另外,如果我將延遲保持在1秒,但減少包含圖表的頁面數量,則一切正常。 我可以用5個「圖表頁」創建一個10頁的PDF,但是如果我嘗試11頁6個圖表,它會失敗。我需要能夠在單個PDF中處理更多像10或15個圖表。

任何洞察這個錯誤或建議的替代方法,讚賞。謝謝!

+0

@WhiteHat,謝謝你的建議。我試過沒有運氣。得到了和以前一樣的結果。 – saudes

回答

0

我在包含圖表的重負載的頁面上遇到類似的問題。確定時間是很困難的,我發現在拉出頭髮數小時之後,關鍵(至少對我來說)是確保等式兩邊的時間都正確,並且時間更長wkhtmltopdf等待狀態。

IE在谷歌圖表方面,我有足夠的實際庫中取出添加JS延遲防止愚蠢Chrome的緩慢頁面加載「錯誤延遲:

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

1200我的正常工作需要,您可能需要將其更高一些,具體取決於您從Google獲取的內容。

重要的一個(對我來說)是確保wkhtmltopdf平衡延遲和增加一點點延遲(谷歌延遲+處理延遲)。對於這個頁面我添加的PDF側的2200毫秒的延遲:

--javascript-delay: 2200 

,直到我得到了兩個項目的平衡說話就不會在所有的工作。正如你所說,這些圖表根本不會顯示出來 - 這表明你很可能已經解決了一半的錯誤。這可能有助於嘗試將延遲添加到另一側,看看是否有幫助。