我正在使用Laravel
在pdf
系统上借助LaTeX
(pdflatex
)创建windows 10
文档。
我有这种方法来生成pdf
文件:
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]本地信息:53 [2019-06-19 09:02:04] 本地信息:2019-06-19 08:56:14 [2019-06-19 09:02:04]本地信息:
[2019-06-19 09:02:04]本地.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 /客户/软件/应用/类/ Rechnung / LaTex / Output / Rechnung_DY58MPGlGgoWv1ATzJL8_000053-19” -output-directory =“ D:/ Files / Company / Kunden / Customer / Software / app / Classes / Rechnung / LaTex / Output /”“ 失败。退出代码:1(一般错误)
工作目录:D:\ Files \ Company \ Kunden \ Customer \ Software \ public
输出:
错误输出: ==============在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
文件。它让我发疯...