如何排除 wkhtmltopdf 中的 javascript 或 http 错误?
How can I troubleshoot javascript or http errors in wkhtmltopdf?
一段时间以来,我一直使用 wkhtmltopdf 来即时生成 pdf 文档,并且通常它遥遥领先(与 php 中可用的其他工具相比)。
但是,即使是对这个过程进行最基本的调试也是一件非常痛苦的事情。
使用您的常规浏览器,可能 alert(var);
或 console.log(var);
并发现 "var" 是 undefined
。同样,您可以很容易地在浏览器控制台的某处看到 404
或 500
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
应该也会在命令行上打印一些东西。
一段时间以来,我一直使用 wkhtmltopdf 来即时生成 pdf 文档,并且通常它遥遥领先(与 php 中可用的其他工具相比)。
但是,即使是对这个过程进行最基本的调试也是一件非常痛苦的事情。
使用您的常规浏览器,可能 alert(var);
或 console.log(var);
并发现 "var" 是 undefined
。同样,您可以很容易地在浏览器控制台的某处看到 404
或 500
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
应该也会在命令行上打印一些东西。