Symfony Process LaTeX PDF документ не удается создать - PullRequest
0 голосов
/ 19 июня 2019

Я использую Laravel для создания pdf документов с помощью LaTeX (pdflatex) в системе windows 10.

У меня есть этот метод для генерации pdf file:

public function pdfErzeugen() {
    $process = new \Symfony\Component\Process\Process('"' .str_replace('/','\\',env('PDFLATEXENGINE', 'C:/Program Files (x86)/MiKTeX 2.9/miktex/bin/pdflatex.exe')) .'" "' .str_replace("\\", "/", str_replace(".tex","",$this->latexFilePath)) .'" -output-directory="' .str_replace("\\", "/", $this->outputDirectory) .'"');
    $process->setEnhanceWindowsCompatibility(false);
    $process->run();
    if (!$process->isSuccessful()) {
        throw new \Symfony\Component\Process\Exception\ProcessFailedException($process);
    }
}

На самом деле это всегда выполняется с ошибкой из laravel.log

[2019-06-19 09:02:04] local.INFO: 53 [2019-06-19 09:02:04] local.INFO: 2019-06-19 08:56:14 [2019-06-19 09:02:04] local.INFO:
[2019-06-1909:02:04] local.INFO: 2019-06-19 09:02:04 [2019-06-19 09:02:04] local.INFO: 53 [2019-06-19 09:02:05] local.ERROR: Symfony \ Component \ Process \ Exception \ ProcessFailedException: команда "" C: \ Program Files (x86) \ MiKTeX 2.9 \ miktex \ bin \ pdflatex.exe "" D: / Файлы / Компания / Kunden / Клиент / Программное обеспечение/ app / Classes / Rechnung / LaTex / Output / Rechnung_DY58MPGlGgoWv1ATzJL8_000053-19 "-output-directory =" D: / Файлы / Компания / Kunden / Клиент / Программное обеспечение / app / Classes / Rechnung / LaTex / Output / "" не удалось.

Код выхода: 1 (общая ошибка)

Рабочий каталог: D: \ Files \ Company \ Kunden \ Customer \ Software \ public

Outположить:

Ошибка вывода: ================ в D: \ Files \ Company \ Kunden \ Customer \ Software \ app \ Classes \ Rechnung \ KaufAufRechnung.php: 123 ...

Пока все хорошо (или плохо).Но сейчас происходит странная вещь.Когда я выбираю и запускаю команду:

"C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\pdflatex.exe" "D:/Files/Company/Kunden/Customer/Software/app/Classes/Rechnung/LaTex/Output/Rechnung_DY58MPGlGgoWv1ATzJL8_000053-19" -output-directory="D:/Files/Company/Kunden/Customer/Software/app/Classes/Rechnung/LaTex/Output/"

в консоли, файл pdf генерируется без ошибок.У кого-нибудь есть идеи, где можно начать поиск ошибки?Это может быть проблема авторизации?Веб-сервер работает под другой учетной записью, чем когда я помещаю команду в console.Большое спасибо за каждую подсказку заранее!

ОБНОВЛЕНИЕ:

setEnhanceWindowsCompatibility имеет значение true:

$process->setEnhanceWindowsCompatibility(true);

ОБНОВЛЕНИЕ2: В функции start класса symfony-process я вижу, что эта команда генерируется для запуска процесса:

cmd /V:ON /E:ON /D /C "("C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\pdflatex.exe" "D:/Files/Company/Kunden/Customer/Software/app/Classes/Rechnung/LaTex/Output/Rechnung_iHpVNRyUffzgfBj1w3xj_000053-19" -output-directory="D:/Files/Company/Kunden/Customer/Software/app/Classes/Rechnung/LaTex/Output/")"

Когда я выполняю эту команду с windows -> run, она такжесоздает мой pdf файл.Это сводит меня с ума ...

...