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] であっても、1 つずつ上下に積み上げられます。なぜこれが起こるのか理解していないようです...それらは重なっているはずではありませんか?

4

1 に答える 1

1

私はそれを考え出した:

エビの座標系は左下隅から始まることは知っていましたが、この例ではなぜか見落としていました。

これらの 20 個の最初のボックスがレンダリングされると、周囲の bounding_box がそれに合わせて拡大されます。したがって、座標 0,0 は、含まれている境界ボックスの左下を指しています。これは、正確に最初のボックスの一番下にあります。

次に、次のボックスがレンダリングされるとき、0,0 はまだ左下にあるため、最初のボックスの下部にレンダリングされます...

注:ボックスがページの最後に到達したら、実際に新しいページを開始しようとしていました。そのための別の質問を投稿しました。

于 2012-11-29T10:32:49.910 に答える