这个关于wkhtmltopdf的问题有一个特定的组件和一个更通用的组件。
一般来说:我正在尝试将各种网页提取到pdf文件中,并且我希望wkhtmltopdf能够在尽可能多的情况下工作。它是一个非常好的工具,但我经常遇到无法转换网页的问题。你们有一套与wkhtmltopdf一起使用的标志吗?
具体来说:例如,一个不是很远的网页,但我遇到的问题是http://gizmodo.com/microsoft-surface-book-review-so-good-i-might-switch-1737680767。当我运行没有任何标志的wkhtmltopdf(在Windows中)时,我得到以下内容:
>>wkhtmltopdf http://gizmodo.com/microsoft-surface-book-
review-so-good-i-might-switch-1737680767 blah.pdf
Loading pages (1/6)
Error: Failed loading page http://gizmodo.com/microsoft-surface-book-review-so-g
ood-i-might-switch-1737680767 (sometimes it will work just to ignore this error
with --load-error-handling ignore)
Warning: A finished ResourceObject received a loading progress signal. This migh
t be an indication of an iframe taking too long to load.
Warning: Received createRequest signal on a disposed ResourceObject's NetworkAcc
essManager. This might be an indication of an iframe taking too long to load.
Exit with code 1, due to unknown error.
如果我按照说明操作并使用--load-error-handling ignore
标志,则会生成PDF文件,但该文件为空。我如何让wkhtmltopdf使用这个网页?
我试着用rasterize.js查看其他工具,例如phantomJS,但是它有一系列问题......
谢谢你们!
答案 0 :(得分:1)
当启用Javascript并且完成速度太慢时会发生这种情况。如果你需要运行javascript来解决这个问题,请添加:
--javascript-delay 100000
调整Javascript完成的等待时间(以毫秒为单位)。所以在上面的例子中它等待100秒。请注意,如果您一次运行多文档转换,则此设置适用于整个运行,而不适用于每个单独的文档。因此,如果您在单个pdf输出中转换大约100个输入htmls,则可能需要很长的延迟。
我还添加到我的脚本中:
--no-stop-slow-scripts (Do not Stop slow running javascripts)
启用:不要停止慢速运行javascripts。
答案 1 :(得分:0)
原来其实很简单! 只需使用“-n”标志!就像一个魅力!