2012-02-10 2 views
2

Я использую креветку для создания PDF-файлов в приложении Rails 3.Креветка: печатать строку unicode в PDF

Возможно ли печатать строку Unicode в формате PDF, как в HTML-виде?

Например,

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

в show.html.erb приводит к глифа & # x0F40; в то время как

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 

Это не решит проблему.

+0

Я действительно не понимаю, в чем проблема? – phoet

+0

Моя проблема заключается в том, что соответствующий символ в строку юникода (например, \ x0F40) не отображается в моем pdf-файле. Он просто преобразуется в utf-8 и отображается как обычная строка (например, «\ x0F40»). – obj

ответ

5

Вы должны использовать

pdf.text raw "unicode_for_\u0F40" 

вместо

pdf.text raw "unicode_for_&#x0F40;" 

Рубин способ избежать Юникода является \uXXXX.

Побег - это код выхода HTML/XML и работает только потому, что первое представление сгенерировало HTML-файл.

+0

СПАСИБО СМОТРЕТЬ БОЛЬШЕ! – obj

+0

Способ сказать спасибо, чтобы поддержать и принять ответ;) – gioele

Смежные вопросы