2014-09-23 146 views
7

我使用wkhtmltopdf从html生成pdf,我试图通过PHP exec()函数运行下面的命令,但它的不生成pdf,但我没有显示任何错误。但是,当我通过命令行运行相同的命令它的作品。不能运行wkhtmltopdf commad通过exec()函数在php中,但相同的命令在命令行上工作

以下是我用来执行pdf生成命令的PHP代码。

$command = "wkhtmltopdf -s A4 /inputhtmlfilepath/test.html /outputfilepath/output.pdf"; 
exec($command); 

关于我的设置一些信息:

操作系统 - Ubuntu的12.04

PHP版本 - 5.4.3

任何帮助,将不胜感激,谢谢。

+0

使用文件的完整路径;确保Web服务器用户有权使用目录/文件。 – 2014-09-23 13:31:14

+1

@Digitial,我给出了输入和输出文件的完整路径,并且该文件夹对所有用户具有完全权限,现在设置为777。仍然没有运气。 – 2014-09-23 13:34:18

+1

使用[output and return var](http://php.net/manual/en/function.exec.php)选项查看正在发生的事情。 – 2014-09-23 13:41:25

回答

9

如果你正在'无法连接到X服务器错误',那么请试试这个。

1.安装XVFB包

sudo apt-get install xvfb 

2.创建一个文件作为 'wkhtmltopdf.sh' 和下面的代码添加到并保存

xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "[email protected]" 

3.Then移动这个文件到/ usr/local/bin并授予权限

sudo chmod 555 /usr/local/bin/wkhtmltopdf.sh 

4.然后尝试通过运行命令创建pdf。

/usr/local/bin/wkhtmltopdf.sh input.html output.pdf 
+1

这对我有用。谢谢 – 2014-09-25 12:42:09

相关问题