サーチ…


高度な例

これは、例を用いた先進的なアプローチです

class FundsController < ApplicationController

  def index
    @funds = Fund.all_funds(current_user)
  end

  def show
    @fund = Fund.find(params[:id])
    respond_to do |format|
      format.html
      format.pdf do
        pdf = FundsPdf.new(@fund, view_context)
        send_data pdf.render, filename: 
        "fund_#{@fund.created_at.strftime("%d/%m/%Y")}.pdf",
        type: "application/pdf"
      end
    end
  end
end  

私はコードの上にFundsPdf.new(@fund, view_context)ます。 FundsPdfでヘルパーメソッドを使うために、@fundインスタンスとview_contextでFundsPdfクラスを初期化します。 FundsPdfはこのように見える

 class FundPdf < Prawn::Document

  def initialize(fund, view)
    super()
    @fund = fund
    @view = view
    upper_half
    lower_half
  end

  def upper_half
    logopath =  "#{Rails.root}/app/assets/images/logo.png"
    image logopath, :width => 197, :height => 91
    move_down 10
    draw_text "Receipt", :at => [220, 575], size: 22
    move_down 80
    text "Hello #{@invoice.customer.profile.first_name.capitalize},"
  end

  def thanks_message
    move_down 15
    text "Thank you for your order.Print this receipt as 
    confirmation of your order.",
    :indent_paragraphs => 40, :size => 13
  end
end 

これは、Prawn gemを使用してクラスを使用してPDFを生成する最善の方法の1つです。

基本的な例

あなたはGemとPDF MIMEを追加する必要があります:mime_types.rbの中に入力してください。私たちはPDF MIMEタイプについてレールに通知する必要があります。

その後、私たちはPrawnを使ってPdfを基本的な方法で生成することができます

これは基本的な割り当てです

pdf = Prawn::Document.new
pdf.text "Hello World"
pdf.render_file "assignment.pdf"

私たちは暗黙のブロックでそれを行うことができます

Prawn::Document.generate("implicit.pdf") do
 text "Hello World"
end

明示的ブロックで

Prawn::Document.generate("explicit.pdf") do |pdf|
 pdf.text "Hello World"
end


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow