我有可变数量的表格和可变数量的行,我想让它们一个接一个地显示,但如果表格不适合当前页面,请将其放在下一页,然后继续。我已将表格放入事务中,以便我可以回滚然后打印它(如果高度适合当前页面),但我如何获得表格高度?
我现在有这段代码
pdf.transaction do
pdf.table @data,
:font_size => 12,
:border_style => :grid,
:horizontal_padding => 10,
:vertical_padding => 3,
:border_width => 2,
:position => :left,
:row_colors => ["FFFFFF","DDDDDD"]
pdf.move_down 20
#pdf.rollback
end
在这方面的任何帮助都会很棒。或者任何其他方式来做到这一点?
最好的问候 rake
最佳答案
4 年后...:)
正如@m-x 所写,回滚出于安全原因被禁用,就像“组”一样,并且仍然没有实现。所以,这里我是如何处理表格的断页的:
大而简单的表格(每个数据一行)
只使用标题选项
pdf.table @data,
header: true, # You can use 'header: 2' if your header take two rows
font_size: 12,
border_style: :grid,
horizontal_padding: 10,
vertical_padding: 3,
border_width: 2,
position: :left,
row_colors: ["FFFFFF","DDDDDD"]
小表或复杂表
- 摆 table
- 检查是否需要分页
- 绘制表格
以你的例子:
t = pdf.make_table @data,
font_size: 12,
border_style: :grid,
horizontal_padding: 10,
vertical_padding: 3,
border_width: 2,
position: :left,
row_colors: ["FFFFFF","DDDDDD"]
if cursor - t.height < 0
start_new_page
end
t.draw
希望对你有帮助
关于ruby-on-rails - prawnto 显示新页面时不会中断的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081635/