我已经尝试了所有方法,包括单独使用 xelatex:
xelatex my_file.tex
,同时使用:
xelatex -no-pdf my_file.tex
xdvipdfmx my_file.xdv
并使用与上述相同的命令创建一个.sh 文件并从 php 执行该文件。
无论我做什么,在输出的最后我都会得到以下结果:
Error 256 (driver return code) generating output; [174] => file
my_file.pdf may not be valid. [175] => Transcript written on
my_file.log. )
但是,如果我从终端执行与上述完全相同的操作,则一切都会正常工作,并成功生成 pdf。
服务器在 Ubuntu 14.04 上运行。我整天都在为这个问题而苦苦挣扎,我已经没有主意了。如果从 php 执行:
xelatex -no-pdf my_file.tex
一切正常,并生成了 .xdv 文件。因此问题肯定出在 xdvipdfmx 驱动程序上,该驱动程序似乎无法与 php 很好地配合使用。我对 php 和 linux 的经验并不丰富,因此无法弄清楚这两者之间可能出现的问题。
请记住,从终端运行命令和从 php 执行命令的输出完全相同,直到必须创建 pdf 文件(最后的日志行)。当我从终端运行它们时,它可以正常工作,并且我得到了
Output written on my_file.pdf (1 page).
当我从 php 编译时我得到
Error 256 (driver return code) generating output; [174] => file
my_file.pdf may not be valid.
这是我所能最接近这个问题的。
编辑:
我将 .tex 文件改成了更简单的布局,然后成功生成了 pdf。所以你可以说问题出在 .tex 文件上,但奇怪的是为什么它在终端上运行,而在 php 上运行却不行。