Конвертируйте DOC в PDF, используя unoconv через Symfony Component

Я пытаюсь преобразовать текстовые документы в PDF через командную строку, используя unoconv через PHP.

Я использую 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() & start() методы класса Symfony.

mustRun() выдает следующую ошибку:

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

После добавления лог-кода, предложенного Диего Ферри, я получаю Error: Unable to connect or start own listener. Aborting. в лог-файл; но я не могу найти много полезного в Интернете.

1 ответ

Пожалуйста, прочтите этот раздел, но также проверьте раздел устранения неполадок.

Вполне возможно, что в оболочке отсутствуют некоторые важные переменные среды, чтобы unoconv/LibreOffice работал правильно (PATH, HOME, ...). И рекомендуется вызывать двоичный файл Python LibreOffice с помощью unoconv, а не оставлять его на unoconv для определения местоположения LibreOffice и python.

Другие вопросы по тегам