5

我正在使用 生成 PDF wkhtmltopdf,这太棒了。但是,有时该工具会返回退出代码,但在很多情况下,PDF 似乎仍然可以正确生成。

我怎么真的知道wkhtmltopdf没有完成这项工作?

例子:

http://www.egresadotec.edu.sv/boletin_pdf_create.php?idbXwt=101给出了 404,但实际上整个页面是正确创建的(尽管 12Mb)。 http://www.anarchia.com/link_in_frame.php?link=7243给出了 404 并且确实没有生成任何内容,但文件大小不是 0

4

3 回答 3

2

这实际上是一个非常复杂的问题。我有时希望将 404/500/503 页面正常呈现为 PDF。那么退出代码应该是什么?我认为退出代码应该类似于 2,只是为了通知我页面返回的 HTTP 代码,但我仍然确实需要 PDF 才能正常呈现。我怀疑您的实际问题是没有明确记录退出代码的原因,这确实是真的。

我为此创建了一个问题,但 Antialize 是一个忙碌的人,所以他可能没有时间处理此类问题。我实际上怀疑您正在从您自己创建的某个包装器中调用 wkhtmltopdf 并且您正在那里检查退出代码。如果您不希望在 URL 返回 HTTP 2xx 以外的内容时生成 PDF,我建议您在调用 wkhtmltopdf 之前自己检查 URL。创建一个工具或使用现有工具来调用该 URL 并检查它的响应。不是很贵,很简单,它可能对你有用。

于 2012-12-19T07:55:05.643 回答
1
EXITCODE     EXPLANATION
0            All OK
1            PDF generated OK, but some request(s) did not return HTTP 200
2            Could not something something
X            Could not write PDF: File in use
Y            Could not write PDF: No write permission
Z            PDF generated OK, but some JavaScript requests(s) timeouted
A            Invalid arguments provided
B            Could not find input file(s)
C            Process timeout

当出现错误代码 1 或 Z 时,它并没有真正失败。它创建 PDF。理想情况下,它应该是一个警告。

于 2018-05-29T06:38:43.683 回答
-1

这只是一个权限问题,请检查您对此文件“wkhtmltopdf”的用户权限并相应地运行,或者您可以更改它。

[root@localhost ~]#ls -l wkhtmltopdf
-rwxr-xr-x 1 xyz xyz 11068596 May  3 15:59 wkhtmltopdf
[root@localhost ~]#
[root@localhost ~]#su - xyz

[xyz@localhost ~]$ ./wkhtmltopdf

(您将获得此文件 wkhtmltopdf 的可执行输出。)

——乔纳斯·约瑟夫

于 2015-05-03T20:24:34.827 回答