我刚开始使用 Prawn 生成 PDF,所以这可能是一个简单的问题,但它让我抓狂!
我有一个包含嵌套子表的表。我已经能够轻松地设置主表的样式和格式,但我似乎无法对嵌套的子表做同样的事情。我真正需要做的就是设置列宽并删除边框,但我似乎无法弄清楚。
这是我目前的代码:
def line_items
data = line_item_rows
table(data) do
row(0).font_style = :bold
columns(0).width = 160
columns(1).width = 300
columns(2).align = :right
columns(2).valign = :bottom
row(0).columns(2).valign = :top
row(0).columns(2).align = :left
self.header = true
end
end
def line_item_rows
[["Description", "Items" ,"Price ex GST"]] +
@line_items.map do |item|
[item.description, sub_item_rows(item), price(item.charge_ex_gst)]
end +
[["","Total", price(@project.charge_ex_gst)]]
end
def sub_item_rows(item)
item.sub_items.map do |sub_item|
["#{sub_item.quantity} x #{sub_item.name} #{price(sub_item.total_charge_ex_gst)}"]
end
end
关于如何将样式应用到子表,有什么建议吗? 预先感谢您的帮助。
干杯,马克
最佳答案
好的,这是修复的方法。我需要使用“make_table”并像这样应用格式:
def line_items
move_down 15
data = line_item_rows
table(data) do
row(0).font_style = :bold
columns(0).width = 160
columns(1).width = 300
columns(2).align = :right
columns(2).valign = :bottom
row(0).columns(2).valign = :top
row(0).columns(2).align = :left
self.header = true
end
end
def line_item_rows
[["Description", "Items" ,"Price ex GST"]] +
@line_items.map do |item|
[item.description,
sub_items(item),
price(item.charge_ex_gst)]
end +
[["","Grand Total", price(@project.charge_ex_gst)]]
end
def sub_items(item)
sub_data = sub_item_rows(item)
make_table(sub_data) do
columns(0).width = 200
columns(1).width = 100
columns(1).align = :right
#columns(0).borders = []
end
end
def sub_item_rows(item)
item.sub_items.map do |sub_item|
["#{sub_item.quantity} x #{sub_item.name}", price(sub_item.total_charge_ex_gst)]
end +
[["","Total"]]
end
关于ruby-on-rails-3 - 我如何在 Prawn 中格式化和设置子表的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15939199/