こんにちは、KBMJの中平@railsエンジニアです。

今回は、ruby on railsでPDFファイル出力ができる  prawnto というプラグインついて書きます。

 

rubyおよびrailsでPDFファイルを出力するプラグインは色々ありますが、

今回は、railsのプラグインとして使用できること、日本語を使用できること、コントローラー・ビューに記述するだけで簡単にPDF出力ができるプラグインということで、 prawntoというpluginを紹介しようと思います。

(ほかのライブラリだと、サーバーにライブラリを入れておかないといけないものや、一旦PDFファイルを事前にファイル出力しておかなければならないものが多く面倒な気がしました)

 

環境


OS : Windows Vista
Ruby : 1.8.7
ruby on rails : 2.3 (prawntoは公式ページでは2.1or2.2と書かれていましたが、2.3でも動きました)


prawntoのインストール


ruby script/plugin install git://github.com/thorny-sun/prawnto.git


prawnのインストール

prawnto はprawnというPDF出力ライブラリを利用しているため必要
gem installprawn



 

日本語用フォントのダウンロード

 

ダウンロードして解凍後、ttfファイルをアクセス可能な場所に置く
http://ossipedia.ipa.go.jp/ipafont/

私はpublicの直下に置きましたが、libでもvender配下でもいいと思います。

コントローラーのメソッドに以下のコードを記述

 

def show       
    prawnto :prawn => {
              :page_layout => :portrait, # 縦 :landscape,# 横
              :page_size => 'A4',

              :left_margin => 36,
              :right_margin => 36,
              :top_margin => 36,
              :bottom_margin => 36
 
    }
@pigs = "#{RAILS_ROOT}/public/images/aaa.jpg" #画像ファイル

end


ビューファイルに以下のコードを記述

ファイル名は show. pdf.prawnという風につけます。

 

 

pdf.font "#{RAILS_ROOT}/public/ipag.ttf"
pdf.text "日本語のテストです。"
pdf.text "サイズ36", :size => 36
pdf.font "Times-Roman"
pdf.text "abcdefghijklmnopqrstuvwxyz"

pdf.text "http://doruby.kbmj.com"

pdf.bounding_box([400,313], :width=>50, :height=>50) do
  pdf.line_width = 2
  pdf.stroke_rectangle [0,50], 50, 50
  pdf.stroke_line 0,0,50,50
  pdf.stroke_line 0,50,50,0
  pdf.font 'Helvetica-Bold', :size => 12
  pdf.text "\nSTAMP\nHERE", :align=>:center
end

pdf.image @pigs, :at => [50,450], :fit => [200,200]

 

実際にruby on railsでPDF出力する


コントローラー名/show/hoge.pdf


というようにアクション名の後ろに拡張子をPDFにしたファイル名をつけてブラウザでアクセスするとデータがPDF形式で出力されます。

 

この、prawntoではオプションが用意されており、色々な形のPDFファイルを出力することが可能です。

 

簡単に例をあげます

 :prawn PDFの表示形式などの設定{}に複数設定可能

 >> 上の例だと:page_layout => :portrait, # 縦 pagee_size => 'A4',

      とあるのはA4縦で出力 あとは余白などの設定しています。

 

:inline=>false : falseにすることでPDFをダウンロードさせる。デフォルトはtrueになっており、ブラウザでPDFが表示されます。

 

また公式ページにデモが用意されておりPDFのサンプルを見ることができますので、是非参考にしてください。

 

http://cracklabs.com/prawnto/demos

このprawntoというプラグインを利用すると比較的簡単にPDFを出力できると思います。

日本語や画像も使え、罫線も引けるようですので、ある程度のことはできそうな感じです。

 

ruby on rails でPDF出力することがあればprawntoを利用してみてはいかがでしょうか?

 

prawnto 公式ページ

 http://cracklabs.com/prawnto

 

ブックマークに追加する

.
web開発ならKBMJ
Rubyでのwebシステム開発は
実績豊富なKBMJにお任せ下さい
iPhone開発
iPhone開発は
KBMJにお任せ下さい
ブラウザゲーム エインヘリアル
ブラウザゲーム「エインへリアル」
αテスター募集中
オープンソースECパッケージ エレコマ
オープンソースECパッケージ
「エレコマ」

プロフィール

nakahira
nakahira
kbmjでrailsエンジニアをしている。中平です。

ruby on railsのこと:
ruby on rails でのシステム開発は2006年12月ぐらいからおこなっております。
ruby on rails を知ってからは他の言語をやりたくないぐらい、ハマってます。

開発環境:
あえてWindows vistaで開発をしています。(人柱w)
aptanaというIDEを使っています。自分の周りではvimを使う人が多いですが・・・・
vimが軽くて使いやすいのは知ってますけど、自分が好きな物を使えばいいとおもうのと、vimのことはいろんな人に聞けるけど、aptanaの使い方わからないという人の為にあえて人柱w

私のこと:
攻殻機動隊が大好きです。タチコマ大好き!!
人工無能に興味あり、社内ircとsnsに人工無能ボットを仕込んで遊んでいます。
無能のコアは、rubyで作られたシシャモを利用しているので、いつかは自分の人工無能エンジンを創ってみたいですね。

最近チェックした記事

最新記事

アーカイブ

アクセスランキング

KBMJのWebソリューション
Ruby on railsの開発ならKBMJ
株式会社ケイビーエムジェイ