Prawnを使ってPDFファイルをダウンロードする方法を確認しています。
Prawnのインストールから初期設定、動作確認として空のファイルをダウンロードしする手順をまとめました。
下記サイトを参考にしました。
http://www.sitepoint.com/pdf-generation-rails/
1)Prawnをインストール
$ vi Gemfile
gem ‘prawn’
$ bundle install
: Installing pdf-core (0.2.5) Installing ttfunk (1.1.1) Installing prawn (1.0.0)
2)PDFのMIMEタイプを設定
$ vi config/initializers/mime_types.rb
Mime::Type.register “application/pdf”, :pdf
3)コントローラの設定
ここでは、TradeItemsというリソースに対して設定しています。
①ルート設定
$ vi config/routes.rb
resources :trade_items
②コントローラ作成、設定
$ rails generate controller TradeItems
$ vi app/controllers/trade_item_controller.rb
def index @trade_items = TradeItem.all respond_to do |format| format.html format.pdf do pdf = Prawn::Document.new send_data pdf.render, filename: 'report.pdf', type: 'application/pdf' end end end
(コードの説明) ・respond_to
リクエストに応じてフォーマットを設定
respond_to do |format|
format.出力形式
end
・send_data
生成されたバイナリデータをブラウザに送信
send_data(data, options = {})
4)動作確認
下記ルート設定になっているので、http://localhost:3000/trade_items.pdfをブラウザに入力すると、”report.pdf”というファイルがダウンロードされます。
$ rake routes
trade_items GET /trade_items(.:format) trade_items#index