こんにちは、KBMJの中平@railsエンジニアです。
今回は、ruby on railsでPDFファイル出力ができる prawnto というプラグインついて書きます。
rubyおよびrailsでPDFファイルを出力するプラグインは色々ありますが、
今回は、railsのプラグインとして使用できること、日本語を使用できること、コントローラー・ビューに記述するだけで簡単にPDF出力ができるプラグインということで、 prawntoというpluginを紹介しようと思います。
(ほかのライブラリだと、サーバーにライブラリを入れておかないといけないものや、一旦PDFファイルを事前にファイル出力しておかなければならないものが多く面倒な気がしました)
ダウンロードして解凍後、ttfファイルをアクセス可能な場所に置く
ファイル名は 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]
コントローラー名/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 公式ページ