2013-09-26 4 views
3

У меня есть приложение Rails, и я использую драгоценный камень Креветки. Мне нужно сделать это для создания pdf с русским алфавитом (на самом деле это сочетание русских и английских слов). Я сделал исследование и нашел некоторое время назад, это было довольно сложно. Как насчет этого, как мне это сделать?Креветка + русские шрифты

def about 
    respond_to do |format| 
     format.html 
     format.pdf do 
     pdf = Prawn::Document.new 
     pdf.text "не ну ни фига sebe" 
     send_data pdf.render 
     end 
    end 
    end 
+0

Попробуйте, неважно, если он сломан, и поместите свой код в вопрос. Нам будет легче помочь, когда мы увидим, как вы используете шрифты и кодировку символов (один или оба могут измениться). –

+0

@NeilSlater, вам это помогло? –

+0

Да, я могу по вине - все символы русского алфавита отображаются как символы подчеркивания. Но хорошая новость в том, что у него есть правильное количество символов, так что это просто проблема с шрифтом (креветка делает правильную вещь с кодировкой символов). –

ответ

5

Это проблема со шрифтами, вам необходимо установить шрифт, который поддерживает символы, которые вы хотите отобразить, и сказать prawn, чтобы использовать его.

prawn версия 0.12.0 поставляется с одним шрифтом, который будет по крайней мере что-то дисплей:

pdf = Prawn::Document.new 
pdf.font "#{Prawn::BASEDIR}/data/fonts/gkai00mp.ttf" 
pdf.text "не ну ни фига sebe" 
send_data pdf.render 

Если вы хотите похорошела, вам нужно найти и использовать другой шрифт и изменить pdf.font линию, чтобы использовать его ,

+0

после того, как я установил его, что мне делать: вызовите pdf.font? если да, что мне делать на сервере (heroku)? –

+0

@Marius Kavansky: да, вы можете найти хороший шрифт. Непросто рекомендовать его. Microsoft использовала для раздачи некоторых достойных шрифтов с широкой поддержкой Unicode для бесплатной загрузки (у Times New Roman ttf была очень приятная поддержка Unicode). Но в настоящее время кажется, что они считаются частью пакета продуктов, поэтому могут быть недоступны для вас бесплатно. –

+0

@ Marius Kavansky: возможно, самый легкий с загруженным шрифтом - добавить файл шрифта в папку в вашем репо и загрузить его с помощью другого пути. '# {Prawn :: BASEDIR}' предназначен только для шрифтов, которые поставляются с 'prawn'. –

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