【发布时间】:2012-08-04 09:23:22
【问题描述】:
我正在尝试使用 PHP 从 HTML 生成 PDF。我正在运行 Mac OS X 作为我的开发环境,尽管我希望这段代码在生产 linux 服务器上运行。
到目前为止,我得到了:
$url = escapeshellarg("http://www.google.com/");
$output = shell_exec("/usr/local/Cellar/wkhtmltopdf/0.11.0_rc1/bin/wkhtmltopdf " . $url . " /tmp/tmp_pdf.pdf 2>&1");
echo "<pre>$output</pre>";
此代码确实会在 /tmp/tmp_pdf.pdf 中生成 PDF。 问题是它从来没有
echo "<pre>$output</pre>";
浏览器只是挂着说等待服务器....
就好像 shell_exec 命令永远不会完成一样。我注意到当我从终端运行 wkhtmltopdf 时,它不会退出到命令行。我明白了:
Loading page (1/2)
Printing pages (2/2)
Done
然后它也坐在那里,类似于 php 脚本。有什么想法吗?
【问题讨论】:
-
你怎么知道它在等待服务器?
-
您使用的是什么版本的 wkhtmltopdf?我刚刚在 OS X 10.7.4 上测试了 wkhtmltopdf-0.9.9-OS-X.i368 静态二进制文件,它在输出“完成”后立即返回命令行。
-
@rexmac 非常感谢。原来我使用自制软件来安装 wkhtmltopdf。使用静态二进制解决了我的问题。
标签: php wkhtmltopdf shell-exec