2013-12-09 1 views
5

Креветки имеет ограниченное количество шрифтов под Prawn::BASEDIR}/data/fonts/Использования внешних шрифтов TTF для создания PDF с японским текстом, используя креветка

Я попытался gkai00mp.ttf, но генерироваться PDF показывает только 1-й букву «千» из 千葉, например.

Я чувствую, что этот шрифт хорош для китайских иероглифов.

font("#{Prawn::BASEDIR}/data/fonts/gkai00mp.ttf") do 
    text "千葉" 
end 

Можно ли загружать и использовать внешние шрифты? Если да, с чего можно получить эти шрифты?

Мое окружение: Последние рубины и рельсы. Версия для креветок 0.12.0

ответ

5

Здесь я хочу поделиться с решением.

Я также разместил вопрос здесь https://github.com/prawnpdf/prawn/issues/595 и совет был:

В TTF шрифты, которые поставляются с Prawn предназначены для тестирования и использования с учебное пособие ... они не предназначены для регулярного использовать. Попробуйте выполнить поиск по веб-сайту "Бесплатный японский шрифт TTF", и я уверен, что вы, вероятно, найдете что-то.

Итак, я гугл и нашел http://www.wazu.jp/gallery/Fonts_Japanese.html и испытан mona.ttf, в частности, и это сработало.

+2

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

1

Недавно я использовал креветку (версия 2.0.2 с prawn-table версии 0.2.2) для создания PDF-файла на японском языке и, к сожалению, не имел никакого успеха ни с одним из шрифтов TTF, опубликованным в принятом ответе (принятый ответ по-прежнему очень помогал в понимании того, что японский текст не может быть предоставлен с помощью встроенных шрифтов Креолла!).

У меня было, однако, удача, используя файлы TTF от IPA fonts с креветкой, в частности «пакет 4 шрифтов», которые они указали на странице, которая содержит шрифты IPA Mincho и IPA Gothic. Я использовал шрифт IPAPMincho (ipamp.ttf) для «обычного» шрифта, а IPAPGothic (ipagp.ttf) для «жирного»; они разные шрифты, но один работал для меня как «смелая версия» другой.

В моей конфигурации Prawn я использовал шрифты по умолчанию, где мог (скажем, для документов на английском языке), но файлы TTF для японцев, которые были настроены «на лету». Это приведет к созданию кода, который выглядит примерно так:

Prawn::Document.generate("MyJapaneseDocument.pdf") do |pdf| 
    # assume `font_name` here is something like "IPA", 
    # ie not a font that is shipped with the Prawn gem 
    unless Prawn::Font::AFM::BUILT_INS.include?(font_name) 
    pdf.font_families.update(
     font_name => { 
     normal: "path/to/ipamp.ttf", 
     bold: "path/to/ipagp.ttf" 
     } 
    ) 
    end 
    pdf.font font_name 
end