Конвертируйте 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.