Prawn:用PDF打印unicode字符串

时间:2012-02-10 16:37:55

标签: ruby unicode character-encoding prawn

我正在使用Prawn在Rails 3应用程序中生成PDF。

是否可以像在HTML视图中一样将Unicode字符串打印到PDF中?

例如,

<%= raw "unicode_for_&#x0F40;" %>
show.html.erb中的

会产生字形ཀ而

pdf.text raw "unicode_for_&#x0F40;"
show.pdf.prawn中的

会产生字符串"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

这并没有解决问题。

1 个答案:

答案 0 :(得分:6)

你应该使用

pdf.text raw "unicode_for_\u0F40"

而不是

pdf.text raw "unicode_for_&#x0F40;"

用于转义unicode字符的Ruby方法是\uXXXX

&#x0F40;转义符是HTML / XML转义码,仅在第一个视图生成HTML文件时起作用。