FPDF能支持PDF的中文打印,然而却存在不少的不如意之处,据我目前的使用,总结出几点:
1)FPDF提供的Pdf_Chinese字体,将GB这种字体写入了代码中,若我们希望引入其他的中文字体,则不能方便地使用
2)FPDF输出的数字并不美观,不如Ruport::Formatter::PDF自带的字体
3)FPDF提供的方法并不多,对于一般的报表打印,用的最多的也许是 Cell方法,但如果连一个普通的报表打印都需要能过代码控制换行、画直线、写单元格,那就太不方便了
Prawn也是呼声叫高的一种Ruby PDF报表工具,对于它和 FPDF到底谁更优秀,这就要因人而异了,FPDF是用PHP编写的PDF库的移植,而PRAWN则不是 Prawn:使用Ruby生成PDF更简捷中有简单的介绍
下面来看看PRAWN是如何实现PDF的打印的(基本的实现参考 Ruby Ruport实践—简单报表系统)
一、安装Prawn
gem install prawn
二、修改enviroment.rb
添加如下引用:
三、引入合适的中文字体
Prawn支持外部引入中文字体,例如“楷体”
从C:\Windows\Fonts下将本机支持的字体文件(*.ttf)复制到
%RUBY_HOME%\lib\ruby\gems\1.8\gems\prawn-core-0.8.4\data\fonts
在代码中通过
@pdf_writer.font"#{::Prawn::BASEDIR}/data/fonts/simkai.ttf"
指定需要引用的字体
四、修改ReportOutputController.rb
替换Pdf<Ruport::Formatter::PDF为如下代码:
五、保存repoert_templates
对于template_content的内容保存为如下:
演示效果: