2013-12-09 78 views
5

大蝦生成與日本文字PDF有字體的下Prawn::BASEDIR}/data/fonts/使用外部TTF字體使用蝦

我試圖gkai00mp.ttf數量有限,但生成的PDF顯示只有第一個字母「千」千葉,例如。

我覺得這個字體適合中文字符。

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

是否可以上傳和使用外部字體? 如果是的話,可以從哪裏獲得這些字體?

我的環境: 最新的Ruby和Rails。 對蝦版本0.12.0

回答

5

在這裏我想分享一下解決方案。

我也貼這裏的問題https://github.com/prawnpdf/prawn/issues/595 和意見是:

的TTF字體與蝦船是用於測試和與 手動使用......他們不是針對常規使用。做一個網絡搜索 「免費的日本TTF字體」,我相信你可能會找到一些東西。

所以,我用Google搜索,發現http://www.wazu.jp/gallery/Fonts_Japanese.html和測試mona.ttf,特別是和這個工作。

+2

+1爲跟進和解決自己的問題(請也請打勾你自己的答案來解決它)。如果您還有其他有趣的代碼可用,請將其添加到未來用戶的答案中。 –

1

我最近使用蝦(版本2.0.2與prawn-table版本0.2.2)以日語生成PDF,不幸的是沒有任何運氣TTF字體發佈在接受的答案(接受的答案儘管知道日文文本不能用Prawn的內置字體渲染,但仍然非常有幫助!)。

但是,我的確有幸使用IPA fonts與Prawn的TTF文件,特別是他們在包含IPA Mincho和IPA Gothic字體的頁面上列出的「4字體包」。我使用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 
相關問題