Ruby Ruport實踐—中文PDF報表之PRAWN

meteorlwj發表於2010-05-21

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的內容儲存為如下:

 

演示效果:

 

 

相關文章