如何排除 wkhtmltopdf 中的 javascript 或 http 错误?

How can I troubleshoot javascript or http errors in wkhtmltopdf?

一段时间以来,我一直使用 wkhtmltopdf 来即时生成 pdf 文档,并且通常它遥遥领先(与 php 中可用的其他工具相比)。

但是,即使是对这个过程进行最基本的调试也是一件非常痛苦的事情。 使用您的常规浏览器,可能 alert(var);console.log(var); 并发现 "var" 是 undefined。同样,您可以很容易地在浏览器控制台的某处看到 404500 http 错误。

举个例子:

wkhtmltopdf.exe http://localhost/mypage.html C:/temp/myfile.pdf

pdf 文件确实已创建,但不完善,因为缺少依赖于 javscript 或 AJAX 的某些方面。

使用 wkhtmltopdf,如果这些错误存在于 mypage.html 中,我如何才能最好地调查这些错误?

在我看来,您应该先在浏览器中打开源页面。您的浏览器的调试器可以跟踪问题。一旦您知道该页面是完美的,您就可以通过 wkhtmltopdf 运行 它。

您需要使用 --debug-javascript 命令行选项。我在 Linux 测试过,但在 Windows:

上可能是一样的
$ echo '<script>console.log("YAY!");</script>' > test.html
$ wkhtmltopdf --debug-javascript test.html test.pdf
Loading pages (1/6)
Warning: file:///tmp/test.html:1 YAY!
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done

对于 404 和 500 错误,如果我没记错的话,wkhtmltopdf 应该也会在命令行上打印一些东西。