【发布时间】:2014-01-28 23:15:45
【问题描述】:
我已经在我的 Rails 4 应用程序中使用 Prawn 成功实现了 Prawnto_2。但是,我在无法找到答案的表格单元格中遇到了一些奇怪的行为。
在我的实现中,我的应用程序可以创建一个多页 PDF,每页包含一个大表格。每个表格都具有相同的设计并包含相似的数据,因此具有相同的表格标题。
为了加快速度并保持干燥,我将创建一个标题行:
header = []
(0..6).each do |index|
header << pdf.make_cell(:content => "Heading #{index}", :width => 140, :borders => [])]
end
然后,通过多次调用pdf.table(),我可以为我希望出现标题行的每个表重新使用该标题行:
4.times do |i|
pdf.table([header] + more_rows)
# the more_rows variable is an array containing additional rows to be shows beneath the header
end
使用上面的循环,我希望有四个表,每个表都有相同的顶行。这是真的,但是,表格尺寸是错误的。即,在后续表格中将忽略列宽,并且不考虑表格宽度。第一张桌子是完美的,但第二张及以后就遇到了这个问题。
我能够解决此问题的唯一方法是在每次创建表时创建标题行,这意味着大量代码重复。效果很好,但一点也不干。
那么,在上面的示例中,为什么重用 header 会导致列和表的宽度发生变化?有没有更合适的方法来重用 Prawn::Table::Cell 对象?
【问题讨论】:
标签: ruby-on-rails prawn prawnto