我使用Prawn gem生成pdf表.我需要将表的宽度设置为100%.我怎样才能做到这一点?
这是我的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,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
解决方法
您可以使用
Prawn::Document::BoundingBox
类的
width
方法:
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