#ruby-on-rails #ruby-on-rails-4 #prawn
#ruby-on-rails #ruby-on-rails-4 #креветка
Вопрос:
Я использую драгоценный камень Prawn для создания таблицы 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, 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
Существующая документация не помогла. Возможно, я использую другой метод? Я узнал об этом из rails cast!
Комментарии:
1. prawnpdf.org/docs/0.11.1/Prawn/Document/PageGeometry.html Вы можете сделать это в пикселях, в зависимости от ширины вашей страницы
2. @RubyRacer Пожалуйста, помогите Я не использую «Prawn :: Document.new» в своем приложении
3. Нет, но вы можете использовать ширину ячейки, используя эти числа
4. @RubyRacer Не могли бы вы рассказать мне, как это сделать? Я вставил свой код выше
5. руководство по prawn pdf, страница 91 prawnpdf.org/manual.pdf
Ответ №1:
Вы можете использовать width
метод 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