我们正在使用wkhtmltopdf.exe(0.10.0 rc2)将包含大量javascript的非常大的HTML页面转换为PDF文件。在执行所有javascript之前,我们遇到了打印PDF的问题,所以我们决定在执行wkhtmltopdf时使用以下参数(等等):
wkhtmltopdf.exe --no-stop-slow-scripts --javascript-delay 40000 <url> <pdf>
但是,输出仍然会向我们发出警告,表示缓慢的脚本已停止。当我们检查PDF时,应该被javascript隐藏的某些元素仍然可见(所以我认为javascript无法及时执行)。当我检查HMTL页面时,一切看起来都正常,并且控制台中没有显示javascript错误。我尝试了以上两个参数的所有可能组合,没有任何结果。
>wkhtmltopdf.exe --no-stop-slow-scripts --javascript-delay 40000
--print-media-type --no-outline --title "My title" --footer-center "My footer"
--footer-font-name "Verdana" --footer-font-size 4 --no-footer-line
--cookie MyCookie MyCookieKey=MyCookieValue
"http://..." "C:\Users\...\Documents\TestPDF.pdf"
Loading pages (1/6)
Warning: A slow script was stopped <<< Why does it still show this warning?
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done
那么为什么wkhtmltopdf会忽略这些参数呢? 它与wkhtmltopdf的版本有什么关系吗?或者这可能是由于在这些HTML页面中使用jQuery引起的?
非常感谢任何帮助!
答案 0 :(得分:1)
此问题的解决方案是更新到最新版本(0.12.3.2)。使用此版本,我们甚至不再需要--javascript-delay
或--no-stop-slow-scripts
...