我在代码中写
Prawn::Document.generate(@pdf_file) do |pdf| pdf.text("这是一个PDF测试文件123") end
生成 PDF 后,显示不到中文,只显示英文和数字,如下图所示:
上网搜了一下,好像我是缺少 TTF 中文字体。
谢谢!
$ ruby -e 'require "prawn";puts Prawn::BASEDIR'
其实可以用相对路径
在 Prawn 的 manual 里面搜 text/fallback_fonts.rb
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 格式 擦