对虾用堆叠的边界框时自动开始新页(Start new page automatically when

2019-08-03 08:02发布

我想模拟对虾表的行为,但无法使用,因为事物的限制,我可以在细胞内绘制的表格。

所以我用,以边界框创建每一行内元素的上下文。 我遇到的问题与该行做。

我想这样的:

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甚至分页符后增加。

你有关于如何提高这个解决方案有什么建议?

文章来源: Start new page automatically when using stacked bounding boxes in Prawn
标签: ruby prawn