我已经在我的Rails 4应用程序中成功实现Prawnto_2 Prawn。然而,我遇到了一些我无法找到答案的表格单元格的奇怪行为。Prawnto and Prawn:重用使用pdf.make_cell创建的单元格
在我的实现中,我的应用程序可以在每个页面上创建一个包含大型表的多页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
会导致不同的列宽和表宽?有没有更适当的方法来重用对象?
我在helper模块中创建了一个接受'pdf'对象作为参数的函数,现在我的代码再次变为DRY。 –