从PHP编译乳胶文档

时间:2014-09-30 11:31:57

标签: php latex

我想使用shell_exec命令编译一个非常简单的latex文件,以便在网页中生成各种报告。

我移动到创建tex文件的文件夹。如果我发出命令(从控制台,通过键入)

pdflatex report.tex

一切都按预期工作。

我尝试过的第一件事是在php中发出命令:

$cmd_out = shell_exec("pdflatex " . $wcopy);   

其中$ wcopy包含要编译的文件的完整路径(示例中为report.tex)。 latex文件包含一个图像,并且首先编译失败,因为我从php脚本所在的目录发出pdflatex命令,picture和report.tex文件都在不同的目录中。我通过修改latex文件修复了这个问题,使图像路径相对于php脚本所在的目录。

下次我尝试运行脚本时,我从pdflatex收到了这条非常神奇的消息:

pdfTeX error: pdflatex (file ecrm1095): Font ecrm1095 at 600 not found

我相信这有关于php函数shell_exec的事情,虽然我不确定。

任何人都可以告诉我我可能做错了什么吗?我添加了整个图像,因为我认为这可能是一个线索。

编辑:

添加所需信息。服务器在Debian Linux发行版中运行,执行这些命令的用户是www-data

1 个答案:

答案 0 :(得分:0)

这是作为网页的一部分运行的,大概是?

问题可能是您的脚本以不同的用户身份运行。我希望它以apache运行;并且apache可能没有配置正确的路径,或者没有正确的Latex设置来查找字体目录等。

您没有详细说明正在运行的系统,但您可以尝试将其作为apache运行,以查看是否可以重现错误。如果这是Linux,那么成为root,然后进入正确的目录,然后运行

su - apache pdflatex report.tex

看看会发生什么。要成为root用户,如果您知道root密码,则可以自己使用su;或者如果您使用的是Ubuntu,请尝试

sudo bash

成为root(并给它自己的密码),然后我之前建议的行apache