以前PHP+FPDFで処理したが、FPDFがちょっと古めかしいとか環境がWindowsということもあってRuby+Prawnでできないかお試し。
・Prawn
・Prawn Document
参考リンク:
・InfoQ RubyのPDF生成、Prawnを使って簡単かつきれいに
・# s21g :: satoko's blog Rails:prawn & prawntoで日本語のPDF生成
・Prawnのサンプルソース(英語)
・とろ庵 印刷用単位の変換表(prawnはポイント指定なので…)
■ RubyとPrawnのインストール
Windowsには既にRuby(ActiveScriptRuby 1.8.5)が入っていたのでPrawnをGemsでインストールする。
# ActiveScriptRubyにはGemsが入っています。
Dos窓から
> gem install Prawn
これでインストール完了。
■ フォントのインストール
TTFフォントならOKらしいがMSゴシックはNGだったので、IPAのフリーフォントを落とした。
一般利用者向けIPAフォントのダウンロード
■ テストソースを作成(UTF-8Nで作成した)
begin
require 'rubygems'
rescue LoadError
end
require 'prawn'
Prawn::Document.generate(
"test.pdf" ,
:page_size => "A4" ,
:left_margin => 0
) do
font('C:\WINDOWS\Fonts\ipamp.ttf')
font_size(72) do
text "橋"
end
end
旧字体の「高」を使ってみたが正常。
次にpdfをnewするやり方でテーブルを作ってみた。
Prawn::generate(FileName) do のほうが楽な感じがするが、違いがイマひとつわからない。
begin
require 'rubygems'
rescue LoadError
end
require 'prawn'
# テーブル用データを配列に格納
data = [["太郎","ヤマーダ"],["ジャンボ","鶴田"],["恵美","新田"]]
# pdfオブジェクトを生成
pdf = Prawn::Document.new(
:page_size => "A4" ,
:page_layout => :portrait ,
:left_margin => 28 ,
:right_margin => 28
)
pdf.font('C:\WINDOWS\Fonts\ipamp.ttf')
pdf.font_size(72) do
pdf.text "橋"
end
# Very close to PDF::Writer's default SimpleTable output
pdf.table data,
:headers => ["First Name", "Last Name"] ,
:font_size => 10 ,
:vertical_padding => 4 , # 縦
:horizontal_padding => 5 ,
:position => 0 ,
:row_colors => :pdf_writer ,
:border => 0.8 ,
:widths => { 0 => 300, 1 => 239 }
pdf.render_file("test.pdf")
軽〜く使ってみた感想
・PHP+FPDFと比べると、円が描けたり、配列をテーブルにできたり、エレガントな感じ(?)
・FPDF+FPDIのように、既存のPDFを読み込んでオーバーレイのように使うことはできないっぽい(こちらも参照)
・Rails対応のPrawntoってのもあるらしい。