2014-02-05 187 views
4

我正在與WKTHMTOPDF合作並真正享受它。但是,正在轉換的頁面具有谷歌地圖,生成的PDF隨地圖一半加載出來。我知道有一個選項可以在之前的版本中添加--javascript - 延遲,但它會顯示已被棄用。我使用的是0.99版本。請幫忙。謝謝。wkhtmltopdf javascript延遲

回答

4

--javascript-delay選項根本不被棄用。另外,建議升級到最新版本 - 0.9.9是一個非常舊的版本。

7

可以使用wkhtmltopdf版本0.12.0

我也使用在一些網站的javascript高的內容。以前,它不能在0.99版本中正確渲染,但是當我使用版本0.12並使用選項--javascript-delay時,一切都很正常。

您可以添加其他選項過於完美即加載你的JavaScript --enable-javascript--no-stop-slow-scripts

確保您在使用--javascript延遲使用正確的時間延遲,這取決於你的網站是多少它需要渲染的時間。如果你會使用更多的時間延遲,那麼它會需要更多的時間來執行,如果你將採取更少的時間延遲,那麼JavaScript將不會被正確加載。
The link to latest version of wkhtmltopdf

15

另一更好的方法可以做到這一點並不需要使用--javascript - 延遲(並具有不要求你設置的延遲時間的好處,你知道什麼之前所需的延遲實際上會是)。

回調添加到 'tileloaded' 事件:

google.maps.event.addListenerOnce(map, 'tilesloaded', function(){ 
    window.status = 'ready_to_print'; 
}); 

然後調用wkhtmltopdf設置爲 'ready_to_print' 例如在--window.status選項

wkhtmltopdf --window-status ready_to_print map.html map.pdf 

很明顯,你可以改變字符串「ready_to_print」是你要這麼久不管是window.status已經不等於該值時wkhtmltopdf被調用,上面的代碼觸發之前。

類似的方法可以與谷歌圖表一起使用,儘管相應的事件會以不同的名稱出現。