'сырой' метод не метод Прона; это OutputSafetyHelper method от Rails. Я получаю ту же ошибку, что и вы (я использую код креветки в модели, а не в представлении), но, посмотрев на источник для #raw, я понял, что все, что он делает, вызывает String # html_safe. Я заменил оригинал:
text raw "unicode_for_\e501"
с
text "unicode_for_\uE501".html_safe
Обратите внимание на следующее:
- код Unicode вы хотите, чтобы мы E501, и вам нужно бежать с \ и перед ним.
- Вы должны использовать двойные кавычки вокруг своей строки, чтобы гарантировать, что вас правильно подобрали.
- .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" }
}