0

这段代码产生了意想不到的结果:

require 'prawn'
Prawn::Document.generate("test.pdf") do
  move_down 50
  bounding_box [0, cursor], width: bounds.width do
    20.times do
      bounding_box [0,0], width: bounds.width, height: 50 do
        stroke_bounds
      end
    end
  end
end

边界框是堆叠的,彼此下方一个,即使它们的坐标是 [0,0]。我似乎不明白为什么会发生这种情况......它们不应该重叠吗?

4

1 回答 1

1

我想到了:

大虾的坐标系从左下角开始,我知道,但在这个例子中我忽略了它。

当这 20 个框的第一个渲染时,周围的 bounding_box 被放大以适应它。因此,0,0 坐标现在指向包含边界框的左下角,恰好位于第一个框的底部。

然后下一个框渲染的时候,0,0还在左下角,所以渲染在第一个框的底部,以此类推……

注意:我实际上是在框到达页面末尾时尝试开始一个新页面,并且为此发布了另一个问题

于 2012-11-29T10:32:49.910 回答