Prawn:用PDF打印unicode字符串

obj*_*obj 2 ruby unicode prawn character-encoding

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

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

例如,

<%= raw "unicode_for_&#x0F40;" %>
Run Code Online (Sandbox Code Playgroud)

show.html.erb结果中的字形ཀ而

pdf.text raw "unicode_for_&#x0F40;"
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

    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
Run Code Online (Sandbox Code Playgroud)

这并没有解决问题.

gio*_*ele 7

你应该用

pdf.text raw "unicode_for_\u0F40"
Run Code Online (Sandbox Code Playgroud)

代替

pdf.text raw "unicode_for_&#x0F40;"
Run Code Online (Sandbox Code Playgroud)

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

&#x0F40;逃逸是一个HTML/XML转义码,只因为第一个视图生成的HTML文件的工作.