使用unoconv通过Symfony组件将DOC转换为PDF

时间:2015-09-03 11:52:17

标签: symfony ubuntu laravel-5 pdf-conversion symfony-process

我正在尝试通过PHP使用unoconv通过命令行将word文档转换为PDF。

我正在使用Symfony Process Component通过命令行运行命令。

public function run()
{
    $cmd = 'unoconv --listener & unoconv ' . $this->path;

    //Tested this to check for permissions and this worked.
    //$cmd = 'touch /vagrant/public/testfile.pdf'; 

    $process = new Process($cmd);  
    $process->run();

    return $process->getOutput();
}

这不会产生任何输出,也不会转换文件。但是,如果我回显$cmd并将其粘贴到CLI中,它会按预期转换文件并在输出时记录输出。

任何想法可能是什么问题?

修改: 我已经尝试过:拨打mustRun()& symfony类上的start()方法。

mustRun()出现以下错误:

"The command '//command//' failed. Exit Code: 251(Unknown error) Output: ================ Error Output: ================

按照Diego Ferri的建议添加日志代码后,我在日志文件中得到Error: Unable to connect or start own listener. Aborting.;但我在网上找不到太多有用的东西。

1 个答案:

答案 0 :(得分:0)

请阅读this section,同时查看troubleshooting section

shell可能缺少一些重要的环境变量,以便unoconv / LibreOffice正常工作(PATH,HOME,...)。建议您使用unoconv调用LibreOffice python二进制文件,而不是将其留给unoconv来确定LibreOffice和python的位置。