因此,我有一个Rails应用程序,用户提交时应根据用户输入生成某种.tex文件,将其编译为pdf并提供pdf。通过消除的过程,我相当积极地认为除了一条线以外,一切正在发挥作用;调用pdflatex的那个。在我的Rails控制器中运行系统命令(pdflatex)
这里是代码的重要部分: (如果它很重要,它位于生成操作下的问题控制器中,在表单发送相关信息之后调用它)虽然这可能不是最好的方法,敢一定它不是错误的原因)
texHeader = 'app\assets\tex\QuestionsFront.txt'
texOut = 'app\assets\tex\Questions.tex'
#copy latex header to new file
FileUtils.cp(texHeader, texOut)
File.open(texOut, 'a+') do |fout|
fout.write("\n")
# a loop writes some more code to fout (its quite lengthy)
fout.write("\\end{enumerate}\n")
fout.write("\\end{document}")
#The problem line:
puts `pdflatex app/assets/tex/Questions.tex --output-directory=app/assets/tex`
end
filename = 'Questions.pdf'
filelocation = "app\\assets\\tex\\" + filename
File.open(filelocation, 'r') do |file|
send_file file, :filename => filename, :type => "application/pdf", :disposition => "attachment"
end
end
这里是我的理由是:它正确地产生.tex文件,并给予预先创建的文件Questions.pdf发送它就好了。当puts中的命令被复制到终端时,它运行顺畅(文件以\ nonstopmode开头,所以不用担心小错误)。但出于某种原因,当我运行上述脚本时,甚至没有创建一个包含错误的日志文件。
我在忽略什么?有任何想法吗?任何方式看看投入线正在创建什么输出?
感谢这么多提前!
感谢您的反馈意见。我总是混淆我的斜线。我改变了代码行,但我仍然没有得到任何东西。没有日志文件,没有输出。我相应地更新了我的问题。 – 2012-03-07 04:26:14
@ngmiceli:'pdflatex'打印标准输出中的任何有用内容,还是将它全部写入'--output-directory'? – 2012-03-07 04:30:29
它将大量东西打印到标准输出,但通常相同的_exact_内容通常也会打印到日志文件中。我承认,我不知道是否有计划的情况下可以打印标准输出但不创建日志文件的脚本。我只是不明白当将命令复制到终端时如何发生这种情况可能会像梦一样发生。 – 2012-03-07 04:33:11