15

Prawn pdf gemを理解しようとしています。

pdfを生成することができました。gemfile 内のすべての gem には以下が含まれていました。

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

config/application.rb で:

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. エビに app/report (または他の選択した) フォルダーにファイルを生成させるにはどうすればよいですか?
  2. ブラウザウィンドウでファイルを生成し、保存しないようにするにはどうすればよいですか?
  3. 保存してブラウザウィンドウに表示するにはどうすればよいですか?
4

3 に答える 3

34

エビに app/report (または他の選択した) フォルダーにファイルを生成させるにはどうすればよいですか?

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

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

def index
  pdf = Prawn::Document.new
  pdf.text "Hello World"
  filename = File.join(Rails.root, "app/report", "x.pdf")
  pdf.render_file filename
  send_file filename, :filename => "x.pdf", :type => "application/pdf"
end
于 2011-09-03T12:37:16.383 に答える
17

質問 3 への回答: 「保存してブラウザ ウィンドウに表示するにはどうすればよいですか?」

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 を表示するようブラウザに強制します (可能な場合)。

于 2012-06-08T01:43:15.483 に答える
0

これを試して:

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

とはいえ、些細な PDF 以外の場合は、おそらくコントローラーの外部のどこかに生成したいと思うでしょう。

于 2011-09-03T12:14:19.480 に答える