Креветка: печать строки в кодировке Юникод в PDF - PullRequest
2 голосов
/ 10 февраля 2012

Я использую Prawn для создания PDF-файлов в приложении Rails 3.

Можно ли напечатать строку Unicode в PDF, как в представлении HTML?

Например,

<%= 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 Ответ

6 голосов
/ 12 февраля 2012

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

pdf.text raw "unicode_for_\u0F40"

вместо

pdf.text raw "unicode_for_&#x0F40;"

Рубиновый способ экранирования символов Юникода: \uXXXX.

escape &#x0F40; является escape-кодом HTML / XML и работает только потому, что первое представление генерирует HTML-файл.

...