在Prawn中使用堆叠边界框时自动启动新页面
我想在Prawn中模拟表的行为,但由于我可以在单元格内绘制的东西的限制,所以不能使用表。
所以我使用边界框来为每行内的元素创建上下文。 我遇到的问题与行有关。
我正在尝试这个:
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
但我觉得这非常hacky而且不是最优的,因为在start_new_page之后无法重新定位包含bounding_box(我希望它开始高一点),而且我必须手动指定页面的位置发生中断(在这种情况下每11个元素)。 我尝试使用bounds.parent.height
并使用光标检查它是否到达结尾,但似乎即使在分页后, bounds.height
增加。
您对如何改进此解决方案有任何建议吗?