2016-02-01 5 views
2

я могу получить только размер страницы, чтобы быть размер буквы по умолчанию с помощью:Как установить размер страницы с помощью креветок?

def show 
    @card = Card.find(params[:id]) 
    respond_to do |format| 
    format.html 
    format.pdf do 
     pdf = CardPdf.new(@card) 
     send_data pdf.render, filename: "#{@card.entrant_first_name}_#{@card.entrant_surname}_#{@card.section}.#{@card.category}.pdf", 
     type: "application/pdf", 
     disposition: "inline" 

    end 
    end 
end 

Когда я изменить эту строку:

pdf = CardPdf.new(@card) 

к этому:

pdf = Prawn::Document.new(:page_size => "A6", :page_layout => :landscape) 

это работает, но Я больше не вижу контент из моего файла card_pdf.rb.

Это мой CardPdf:

class CardPdf < Prawn::Document 

    def initialize(card) 
    super() 
    @card = card 
    font_families.update("Roboto" => { 
     :normal => "#{Prawn::BASEDIR}/fonts/Roboto.ttf" 
    }) 
    font_families.update("SourceCodePro" => { 
     :normal => "#{Prawn::BASEDIR}/fonts/SourceCodePro.ttf" 
    }) 
    font("Roboto") 
    header 
    move_down 25 
    page_title 
    move_down 20 
    card_info 
    end 

    def horizontal 
    stroke do 
     move_down 15 
     stroke_color 'f3f3f3' 
     line_width 2 
     stroke_horizontal_rule 
     move_down 15 
    end 
    end 

    def header 
    text "Dalgety Bay Horticultural Society", size: 10, :color => "b9b9b9", :character_spacing => 1 
    end 

    def page_title 
    text "Card", size: 32,:color => "222222", :character_spacing => 1 
    end 

    def card_info 


    horizontal 

    end 

end 
+0

Просьба показать класс CardPdf. – infused

ответ

4

Это не в основном потому, что вы больше не вызывая @card в

pdf = Prawn::Document.new(:page_size => "A6", :page_layout => :landscape) 

Это лучше использовать что-то вроде этого:

def initialize(...,...) 
    super :page_size => "A4", :page_layout => :landscape 
end 

в этом файле :

class ....Pdf < Prawn::Document 
Смежные вопросы