2011-09-03 115 views
15

Fellas、私はprawn pdf gemをマスターしようとしています。Rails、Prawn - PDFはブラウザなどに表示

[OK]を、私はマスターlvlから遠いです。私はそれがpdfを生成させることができました。 gemfile内のすべての宝石が含まれます。config/application.rbで

gem 'mysql', '~> 2.8.1' 
gem 'prawn', '~> 0.12.0' 
gem 'pdf-reader', '~> 0.10.0' 
gem 'Ascii85', '~> 1.0.1' 

config.autoload_paths << "#{Rails.root}/app/reports" 

コントローラに比べて:私は、インデックス関数を呼び出したより

require 'prawn' 

def index 
    pdf = Prawn::Document.new 
    pdf.text "Hello World" 
    pdf.render_file "x.pdf" 
end 

を。私のアプリケーションのルートにx.pdfという名前のPDFが作成されます。 gemfileの中には、rakefileとconfig.ruがあります。

質問:

  1. どのように私はアプリ/レポート(または任意の他の選択された)フォルダ内のファイルを生成するために、エビを強制することができますか?
  2. ブラウザウィンドウでファイルを生成するアクションをどのようにして保存できませんか?
  3. ブラウザのウィンドウに保存して表示するにはどうすればよいですか?

ユアーズ、ケール

答えて

30

アプリ/レポート(または他の選択された)フォルダでファイルを生成するにはどうすればよいですか?

def index 
    pdf = Prawn::Document.new 
    pdf.text "Hello World" 
    pdf.render_file File.join(Rails.root, "app/report", "x.pdf") 
end 

ブラウザウィンドウでファイルを生成するアクションをどのようにして保存できませんか?

def index 
    pdf = Prawn::Document.new 
    pdf.text "Hello World" 
    send_data pdf.render, :filename => "x.pdf", :type => "application/pdf" 
end 

ブラウザのウィンドウに保存して表示するにはどうすればよいですか?

+1

こんにちは内部のあなたのPDFを表示するために

def index pdf = Prawn::Document.new pdf.text "Hello World" send_data pdf.render, filename: "x.pdf", type: "application/pdf", disposition: 'inline' end 

disposition: 'inline'は、ブラウザを強制します。しかし、そこには、pdfがあるかどうかが分かりますか?パブリックフォルダにpdfを格納するソリューションはありますか? – SSR

+3

send_dataにオプションを追加する必要があります:disposition => 'inline' – sissy

0

はこれを試してください:あなたは、おそらくどこかのコントローラの外にそれを生成することになるでしょう些細なPDFが、何のために、言った

def index 
    pdf = Prawn::Document.new 
    pdf.text "Hello World" 
    send_data pdf.render, :filename => "x.pdf", :type => "application/pdf" 
end 

15

アンサー質問3:「ブラウザウィンドウに保存して表示するにはどうすればよいですか」 (それが可能ならば)そのそのフォルダに保存するつもりはない私にとっては、現在のブラウザウィンドウ

+3

+1の ':disposition => 'inline'' – BryanH

関連する問題