«Сырой» метод - это не метод креветок; это метод OutputSafetyHelper из Rails. Я получаю ту же ошибку, что и вы (я запускаю код Prawn в модели, а не в представлении), но, посмотрев на исходный код #raw, я понял, что все, что он делает, - это вызов String # html_safe. Заменил твой оригинал:
text raw "unicode_for_\e501"
с участием
text "unicode_for_\uE501".html_safe
Обратите внимание на следующее:
- Код Unicode, который вы хотите нам E501, и вам нужно выйти с \ u перед ним.
- Вы должны заключить строку в двойные кавычки, чтобы \ u правильно подобрался.
- .html_safe - это метод, который можно вызвать для строки.
Двойные кавычки и экранирование \ u важны, но я обнаружил, что (для моих целей) мне не нужен вызов .html_safe, потому что я мог печатать символы Unicode без него.
Это мой текстовый вызов, который загружает значок глифа:
pdf.font("vabicons") do
pdf.text "\uE61d"
end
Для справки: я загружаю собственный шрифт из IcoMoon.io, и на все печатаемые символы должен ссылаться Unicode. Имейте в виду, что вам нужно, чтобы ваш шрифт был правильно объявлен, иначе даже правильно отформатированный текст может не отображаться.
Это мое объявление шрифта:
sym = Pathname.new( Rails.root.join('app', 'assets', 'stylesheets', 'fonts', 'vabicons.ttf').to_s )
pdf.font_families["vabicons"] = {
:normal => { :file => sym, :font => "Regular" }
}
person
msenne
schedule
14.02.2014