2008年09月13日

Ruby de Pdf

PDFをバッチで作成しなくちゃならんっつーことで。

以前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ってのもあるらしい。
ラベル:ruby Prawn PDF
posted by まきすけ at 03:13| Comment(0) | TrackBack(0) | IT・Web関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック