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

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

我在代码中写

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

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

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

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

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

谢谢!

共收到 6 条回复
  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格式 擦

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