在wkhtmltopdf中组合--window-status和--javascript_delay

时间:2016-06-28 16:19:01

标签: wkhtmltopdf

我想使用wkhtmltopdf渲染我控制的两个页面(在这种情况下,我可以在完成渲染时设置window.status)和(偶尔)我无法控制的页面。根据{{​​3}},我应该能够将--window-status设置为某个值,并--javascript-delay,并且只要满足其中任何一个条件,就会开始渲染。那不是我的经历;命令wkhtmltopdf --javascript-delay 10000 --window-status imdone http://www.google.com/ /tmp/google.pdf永远等待(版本0.12.3,在OSX和linux上)。我如何获得邮件列表中描述的行为?

1 个答案:

答案 0 :(得分:8)

一种解决方法是使用--run-script标记在手动一段时间后设置window.status - 这适用于使用已修补的版本和使用未修补的QT的版本。但请注意,--run-script似乎在转义其参数方面存在一个小错误。因此,以下行将为您提供所请求的行为:

wkhtmltopdf --window-status imdone --run-script \
'window.setTimeout(function(){window.status="imdone";},1000);' \
http://google.com/ /tmp/google.pdf

请注意,由于上述错误,如果在--run-script参数中放置空格,它就无法工作,因此以下内容无法正常工作

wkhtmltopdf --window-status imdone --run-script \
'window.setTimeout(function (){window.status = "imdone";}, 1000);' \
http://google.com/ /tmp/google.pdf