我想模拟对虾表的行为,但无法使用,因为事物的限制,我可以在细胞内绘制的表格。
所以我用,以边界框创建每一行内元素的上下文。 我遇到的问题与该行做。
我想这样的:
require 'prawn'
Prawn::Document.generate("test.pdf") do
move_down 50
bounding_box [0, cursor], width: bounds.width do
20.times do |i|
stroke_bounds && start_new_page if (i+1) % 11 == 0
bounding_box [0, cursor], width: bounds.width, height: 50 do
fill_color "cccccc"
fill_rectangle [0, bounds.height], bounds.width, bounds.height
end
end
stroke_bounds
end
end
但我觉得这是非常哈克,而不是最优的,由于这种含有bounding_box不能start_new_page后重新定位(我希望它开始时高一点了),而事实上,我必须手动指定页面突破发生(在这种情况下,每11要素)。 我试图与工作bounds.parent.height
并用光标来检查它是否达到了目的,但是似乎bounds.height
甚至分页符后增加。
你有关于如何提高这个解决方案有什么建议?