我終於解決了它這樣的,唯一的事情是我用cdn代替了寶石:
這是我的show動作控制器:
def show
@example = Exam.find(params[:id])
respond_to do |format|
format.html
format.pdf do
render pdf: @exam.name,
template: "exams/show.pdf.erb", // The template that you want to convert to pdf
:javascript_delay=>5000,
locals: {:exam => @exam},
layout: "application-pdf.html.erb"
end
end
end
和APP /視圖/佈局/應用pdf.html.erb內:
<!DOCTYPE html>
<html>
<head>
<title>MathTest</title>
<meta charset='utf-8' />
<%= stylesheet_link_tag "https://fonts.googleapis.com/icon?family=Material+Icons" %>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX", "output/HTML-CSS"],
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true
},
"HTML-CSS": { availableFonts: ["TeX"] }
});
</script>
<script type="text/javascript" async
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
</head>
<body>
<%= yield %>
</body>
</html>
關鍵是要包裝你的PDF模板,在我的情況「考試/ show.pdf .erb「在爲你的pdf設計的應用程序佈局中,cdn被加載到佈局中,你只需要給wickedpdf一個延遲javascript處理的選項,以便mathjax有足夠的時間來處理頁面。
希望它有幫助。
UPDATE
彼得Krautzberger提到,cdn.mathjax.org被關閉,由於預算的問題。解決方案將保持不變,您只需從您的項目內部加載mathjax或使用另一個cdn。你可以在這裏找到一些cdn選項:https://www.mathjax.org/cdn-shutting-down/
嘿,這個問題的任何更新? – Nenotlep 2013-11-04 08:44:50