我从PHP执行的wkhtmltopdf有一个奇怪的问题。我的PHP代码如下所示:
<?php
exec('wkhtmltopdf --header-html "http://example.com/pdf-header"
--footer_html "http://example.com/pdf-footer"
/tmp/pdf.html /tmp/pdf.pdf');
?>
当我从shell执行相同的命令时,它完美地工作。但是,当我尝试像上面提到的那样从PHP运行它时,脚本会运行直到超时导致PDF文件为空。
当我搜索网页时,我尝试使用> /tmp/error_log.txt 1>&2
参数运行它,我发现从PHP执行时会返回错误:
Exit with code 1 due to network error: ProtocolUnknownError
更有趣的是,当我删除--footer-html
和--header-html
时,它可以很好地从PHP执行。但显然,生成的PDF缺少页眉和页脚。
页眉和页脚HTML没有任何外部资源引用。而且我不认为它是网络/ DNS问题,因为来自同一服务器的命令行它运行正常。
我会很高兴任何提示和提示,因为这让我发疯。提前谢谢。
答案 0 :(得分:2)
如果有人遇到同样的问题,我会发布我用过的解决方法。我没有将http URL用于页脚和标题,而是将HTML放入本地tmp文件中,并将它们用作页脚和标题。这对我有用,可能也适用于其他人并节省一些时间。
答案 1 :(得分:0)
这是一个旧线程,但如果其他人搜索此错误:尝试它可能会有所帮助,这是由导入本地文件(例如:./image)的问题引起的。如果是这样,传递 --enable-local-file-access
标志可能会有所帮助。