2013-09-26 95 views
3

我有一個Rails應用程序,我在那裏使用蝦寶石。我需要使用俄語字母(實際上是俄語和英語組合)生成pdf。我做了一項研究,並在不久前發現它相當棘手。那麼現在呢,我該怎麼做?蝦+俄羅斯字體

def about 
    respond_to do |format| 
     format.html 
     format.pdf do 
     pdf = Prawn::Document.new 
     pdf.text "не ну ни фига sebe" 
     send_data pdf.render 
     end 
    end 
    end 
+0

試試看,如果它壞了,就把它放在問題中。當我們看到你是如何使用字體和字符編碼(一個或兩個可能需要改變)時,它會更容易幫助。 –

+0

@NeilSlater,它有幫助嗎? –

+0

是的,我可以得到一個錯誤 - 所有的俄文字母字符顯示爲下劃線。但好消息是它具有正確的字符數,所以這只是一個字體問題(大蝦用字符編碼正確)。 –

回答

5

這是字體的問題,您需要安裝支持你希望顯示的字符的字體,並告訴prawn使用它。

prawn版本0.12.0帶有一種字體這將至少顯示的東西:

pdf = Prawn::Document.new 
pdf.font "#{Prawn::BASEDIR}/data/fonts/gkai00mp.ttf" 
pdf.text "не ну ни фига sebe" 
send_data pdf.render 

如果你想讓它更漂亮,你需要找到並使用其他字體,並修改pdf.font線使用它。

+0

我安裝之後,我該怎麼做:致電pdf.font?如果是的話,我在服務器上做什麼(heroku)? –

+0

@Marius Kavansky:是的,你可能想要搜索一個不錯的字體。推薦一個並不容易。微軟過去常常提供一些體面的字體,支持免費下載(Times New Roman ttf有非常好的Unicode支持)。但是現在看來它們被認爲是產品包的一部分,因此可能無法免費獲得。 –

+0

@Marius Kavansky:下載字體可能最簡單的方法是將字體文件添加到回購站中的文件夾中,並使用不同的路徑加載它。 '#{Prawn :: BASEDIR}'只適用於'prawn'附帶的字體。 –