因此,我有一個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