2014-06-19 10 views
6

Sto usando la gemma Prawn per generare una tabella pdf. Devo impostare la larghezza del tavolo al 100%. Come posso fare questo?In Rails with the Prawn gem come impostare la larghezza della tabella al 100%?

Ecco la mia slmun_pdf.rb

class SlmunPdf < Prawn::Document 
    def initialize(slmunDbs, view, allcount) 

    if slmunDbs.table_name == "schools" 
     super(top_margin: 50) 
     if slmunDbs.size != allcount 
     @warn = " (Not all Schools)" 
     else 
     @all = " All #{slmunDbs.size} Schools" 
     end 
     text "Showing#{@all}", size: 18, style: :bold, align: :center, color: "636363" 
     text "#{@warn}", size: 11, align: :center, color: "858585" 
     @schools = slmunDbs 
     @view = view 
     school_list 

    end 


    end 

    def school_list 
    move_down 20 
    table school_list_rows, :cell_style => { :font => "Helvetica", :size => 9, :border_width => 0.5, :borders => [:top, :bottom], :border_color => "B0B0B0", :text_color => "737373"} do 
     self.row(0).align = :center 
     row(0).background_color = 'A0B046'  
     row(0).text_color = "FFFFFF" 
     self.row_colors = ["DDDDDD", "FFFFFF"] 
     self.header = true 
    end 
    end 

    def school_list_rows 
    [["Name", "Contact", "Country", "Pre Registration", "Full Registration", "Assigned Countries", "Total Delegates" ]] + 
    @schools.map do |school| 
     countries = "" 
     len = school.countries.count 
     school.countries.each_with_index do |country, index| 
     countries << "#{country.country }" 
     if index+1 != len 
      countries << "," 
     end 
     end 
     [school.name, school.contact, school.country, @view.yesno(school.prereg), @view.yesno(school.fullreg), countries, school.delegates.size ] 
    end 
    end 

end 

Le documentazioni esistenti non ha aiutato. Potrei usare un metodo diverso? Ho imparato questo dal cast rails!

+1

http://prawnpdf.org/docs/0.11.1/Prawn/Document/PageGeometry.html si può fare in pixel, a seconda sulla larghezza della pagina –

+0

@RubyRacer Si prega di aiutare non utilizzare "Prawn :: Document.new" nella mia app – THpubs

+0

No, ma è possibile utilizzare la larghezza della cella utilizzando questi numeri –

risposta

10

È possibile utilizzare il metodo width della classe Prawn::Document::BoundingBox:

require 'prawn' 
require 'prawn/table' 

Prawn::Document.generate("hello.pdf") do 
    table_content = [["This table"], ["covers the"], ["whole page width"]] 
    table table_content, width: bounds.width 
end 
Problemi correlati