2012-02-10 15 views
2

私はPrawnを使ってRails 3アプリでPDFを生成しています。Prawn:PDFでUnicode文字列を出力する

HTMLビューのようにUnicode文字列をPDFに印刷することはできますか?グリフ&#x0F40でshow.html.erb結果で

例えば、

<%= raw "unicode_for_&#x0F40;" %> 

"unicode_for_&#x0F40;"

show.pdf.prawnにしようとした文字列の中

pdf.text raw "unicode_for_&#x0F40;" 

show.pdf.prawnでの結果ながら:

pdf.font "#{Prawn::BASEDIR}/data/fonts/TibMachUni-1.901b.ttf" do 
     pdf.text raw "unicode_for_&#x0F40;" 
    end 

pdf.font_families.update("TibMachUni" => {:normal => "#{Prawn::BASEDIR}/data/fonts/TibMachUni-1.901b.ttf" }) 
    pdf.font("TibMachUni") do 
     pdf.text raw "unicode_for_&#x0F40;" 
    end 

これは、問題を解決していませんでした。

+0

私は本当に問題が何かを理解していないのですか? – phoet

+0

私の問題は、ユニコード文字列(たとえば\ x0F40)に対応するグリフが私のpdfに表示されないということです。それは単にutf-8に変換され、通常の文字列(たとえば "\ x0F40")として表示されます。 – obj

答えて

5

あなたは、Unicode文字をエスケープするRubyの方法が\uXXXXある

pdf.text raw "unicode_for_\u0F40" 

代わりの

pdf.text raw "unicode_for_&#x0F40;" 

を使用する必要があります。

&#x0F40;エスケープはHTML/XMLエスケープコードであり、最初のビューでHTMLファイルが生成されたためです。

+0

大変ありがとうございます! – obj

+0

ありがとうございました。アップアップして回答を受け入れることです。 – gioele

関連する問題