我从 Linux 命令行可以正常工作:
wkhtmltopdf entry.html output.pdf
但以下内容不适用于 PHP 代码:
exec ('wkhtmltopdf entry.html output.pdf');
有趣的是,我用谷歌搜索了很多未经检查的解决方案,但没有解释为什么这是一个问题。谢谢,如果你有好的。
我从 Linux 命令行可以正常工作:
wkhtmltopdf entry.html output.pdf
但以下内容不适用于 PHP 代码:
exec ('wkhtmltopdf entry.html output.pdf');
有趣的是,我用谷歌搜索了很多未经检查的解决方案,但没有解释为什么这是一个问题。谢谢,如果你有好的。
有同样的问题,我认为其他人不应该浪费 > 3 小时:
解决方案在这里:wkhtmltopdf error in apache log
你只需要安装 xvfp “模拟 x 环境”
exec("xvfb-run -a wkhtmltopdf test.html output.pdf")
wkhtmltopdf 有绑定,其中之一是用于 PHP。你可以试一试。
这里是一个围绕 wkhtmltopdf 的 PHP 包装器 http://mikehaertl.github.com/phpwkhtmltopdf/ 非常简单
可能wkhtmltopdf
不在 www-data 的 PATH 变量中。
whereis wkhtmltopdf
会告诉你二进制文件的位置;二进制文件通常驻留在/usr/bin/...
*nix 机器上。然后像这样在你的命令中替换wkhtmltopdf
为eg 。 /usr/bin/wkhtmltopdf
/usr/bin/wkhtmltopdf entry.html output.pdf
刚遇到这个问题 - 就我而言,解决方案很简单:我没有意识到 PHP 处于安全模式。关闭安全模式,它工作正常!
我正在努力解决同样的问题。
我在Windows 2008 R2
服务器上的解决方案PHP 5.4
:
exec('C:\inetpub\wwwroot\mywebsite\subdir\wkhtmltopdf input.html output.pdf');
这就是它(在超过 5 小时的网络搜索包括这个)一个名为 output.txt 的新文件,将其重命名为 output.pdf 并赋予用户“每个人”的权利。
这些是我的试训:
exec(C:\inetpub\wwwroot\mywebsite\wkhtmltopdf );
echo(exec(wkhtmltopdf.exe cache.html output.pdf));
exec("xvfb-run -a wkhtmltopdf test.html output.pdf")
$execute = "xvfb-run -a wkhtmltopdf cache.html output.pdf";
$out = shell_exec("/path/to/wkhtmltopdf --version"); echo($out);
$out = passthru('/usr/local/bin/wkhtml2pdf
希望这些对其他人有用