6

表をpdf形式で表示したい。

私たちは使用しています

format.html
format.json{render json: @user}

html、json形式の生成など

同様に

  • ページを pdf としてレンダリングしたい。

レールで可能な場合、どのような手順がありますか???

4

5 に答える 5

14

第一歩:

Respond_to ブロックで使用する PDF タイプを登録する

# config/mime_types.rb
Mime::Type.register "application/pdf", :pdf

ステップ2:

コントローラで PDF 形式のリクエストに応答する

respond_to do |format|
    format.html
    format.json{render json: @user}
    format.pdf do
        # ...
        # here your PDF generating code
        # ...
        send_data(your_generated_pdf, filename: 'your_filename.pdf', type: 'application/pdf')
    end
end

PDF を生成するには、 wkthmltopdf、 Prawn などでpdfkitを使用できます。使用方法については、それぞれのドキュメントを参照してください。

Rails 5 以降:

ステップ 3:

gem 'responders'Rails 5 の変更ログに次のように追加します。

于 2016-12-25T13:47:00.767 に答える
7

もう一つはエビです。

より堅牢で、複雑な状況をサポートしているようです。したがって、これを選択して、洗練されたものを操作できます。こちらからhttps://prawnpdf.org/manual.pdfを入手してください。APIドキュメント:https ://prawnpdf.org/api-docs/2.3.0/

それを指摘してくれたGlennに感謝します。

于 2012-08-25T08:30:49.110 に答える
7

これが役立つと思います[ https://github.com/mileszs/wicked_pdf ]

format.pdfルートがパーツをサポートしている限り、いつでも like を使用できます.:format。それを使用して、pdfのリクエストをキャプチャします。次に、を使用してpdfをレンダリングしますwicked_pdf

基本的な使用法は以下のように表示されています

def controller_action
    ... ... ...
    ... ... ...
    format.pdf do
        render :pdf => "file_name"
    end
end

使用法を理解するのに役立つ別の記事を次に示します。

于 2012-08-25T08:15:30.790 に答える
5

最後に と で完了prawnですprawn-rails。詳細はこちら。

システムを準備するには

# Add this to your Gemfile
gem 'prawn'
gem 'prawn_rails'

# run
bundle install

URL http://localhost:3000/regionsie を押してindexofを押すRegionsControllerと、ページが pdf 形式で表示されます。

Region単一の属性を持つモデルがありますname。テーブルに 2 つのエントリがありregionsます。

[
 #<Region id: 1, name: "Region 1", ... >,
 #<Region id: 2, name: "Region 2", ... >
]

私のコントローラーの方法:

def index
    @regions = Region.all # Should return two region objects :)

    respond_to do |format|
        format.html # index.html.erb
        format.json { render json: @regions }
        format.pdf    # <---------- This will handle the pdf response
    end
end

でビューファイルを作成しましたviews/regions/index.pdf.prawn。とにかく、ビューファイル名の形式は:action.pdf.prawnであり、ビューファイルには含まれています

prawn_document() do |pdf|
    @regions.each {|r| pdf.text r.name}
end

これは、リージョンの名前を出力するだけです。

それでおしまい。あなたのページはpdf形式です。Prawnとによって提供される他のすべてのオプションを試してみてPrawn-Railsください。ここでいくつか見つけることができます - http://prawn-rails-demo.heroku.com/

Rails 3でさまざまなpdf生成ツールを使用する方法をガイドする一連のブログを書くことを考えています.

問題が解決するかどうかお知らせください。

于 2012-08-25T14:56:30.677 に答える
0

テンプレートを使用する必要がある場合は、combine_pdf gemを単独で (テーブルやテキスト ボックスなどの小さな編集機能を備えています)、またはPrawnなどの前述のソリューションと組み合わせていつでも使用できます。

于 2015-05-07T21:27:13.617 に答える