Gem Prawn 中文显示问题 (已解决)

VincentJiang · 2014年01月13日 · 最后由 huxiuhang 回复于 2016年12月01日 · 4055 次阅读

我在代码中写

Prawn::Document.generate(@pdf_file) do |pdf|
      pdf.text("这是一个PDF测试文件123")
end

生成 PDF 后,显示不到中文,只显示英文和数字,如下图所示:

上网搜了一下,好像我是缺少 TTF 中文字体。

1. 请问有哪位 rubyer 可以分享中文字体?

2. 告诉我 MAC 系统下 Prawn 字体的安装路径是什么?

谢谢!

  1. 用 fontbook 找,不行用 google 找
  2. $ ruby -e 'require "prawn";puts Prawn::BASEDIR'

其实可以用相对路径

在 Prawn 的 manual 里面搜 text/fallback_fonts.rb

你需要定义一个 font_families,比如用微软雅黑,将字体文件放到这个路径下,

font_families["msyh"] = {
    :normal => { :file => "#{FONTS_PATH}/msyh/msyh.ttf" },
    :bold => { :file => "#{FONTS_PATH}/msyh/msyhbd.ttf" }
}

然后用这个字体来显示中文

font("msyh") do
   font_size 75
   text "中文测试", :align => :center
 end

#3 楼 @quakewang 根据你的提示,我已经解决问题了,谢谢!

从 win8 copy 了一份 MSYH.TTC,导出错误,Prawn 还没打算支持 ttc 格式 擦

需要 登录 后方可回复, 如果你还没有账号请 注册新账号