错误 32512(驱动程序返回代码)

错误 32512(驱动程序返回代码)

我正在使用 XeTeX,版本 3.1415926-2.4-0.9998

我正在使用 PHP 创建 .tex 文件并将其存储在 Linux 服务器上。[例如:abc.tex] 然后使用 XeLaTeX 创建带有命令的 .sh 文件以执行 *.tex 文件 [例如:abc.sh]

abc.sh 的示例内容

/usr/local/texlive/2012/bin/x86_64-linux/xelatex abc.tex

如果我在 Linux 命令提示符下执行 abc.sh,则会生成所需的 PDF。但是,如果我通过 php 从 apache webserver 执行 abc.sh,则会给出错误:

Error 32512 (driver return code) generating output;
file abc.pdf may not be valid.

注意:没有生成 PDF 文件

您能提出一些建议来解决这个问题吗?

答案1

最终它被执行了。危险部分原因是,我仍然不知道原因。我怀疑这可能是由于某些路径问题。

我没有使用 xelatex 执行 tex 文件,而是先用 latex 编译,然后用 dvips 编译,最后使用 ps2pdf 转换为 PDF

注意:它是使用 PHP 通过 Web 服务器执行的

答案2

这是从 PHP 执行 latex 的有效方法。关键是,诸如、、等函数exec没有或只能获得有限的变量。但是,和其他函数使用路径变量来调用其他程序。因此shell_exec,我们需要适当地设置路径,例如:passthruPATHlatexpdflatex

passthru('PATH=/usr/bin:$PATH pdflatex file.tex');

还要注意,您的网络服务器用户(通常www-dataapache)应该安装了必要的软件包;如果您使用本地 tlmgr 存储,情况可能并非如此。

相关内容