使用Ruby 2.4和Prawn 2.2.0,如果它不适合当前页面,我想将一个内容块放入下一页。 我尝试使用边界框,因为这样内部内容可以是我想要的任何内容,但我没有实现它。
我有以下文件:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="perspective">
<div class="some-bg"></div>
<div class="wrapper">
<div class="card-face front">Front</div>
<div class="card-face back">Back</div>
</div>
</div>
<button>Flip Me!</button>
由于我希望require 'prawn'
class Doc < Prawn::Document
def initialize(options: {})
super(options.merge(**page_options))
setup_page
header
body
footer
end
def header
bounding_box([0, cursor], width: bounds.width) do
bounding_box([0, bounds.top], width: bounds.width / 2) do
text 'Left Header', size: 36
end
bounding_box([bounds.width / 2, bounds.top], width: bounds.width / 2) do
text 'Right Header', size: 36
end
stroke_bounds
end
end
def body
bounding_box([0, cursor], width: bounds.width / 2) do
text 'The stack has overflowed over the overflow' * 12, size: 24
end
end
def footer
bounding_box([0, cursor], width: bounds.width) do
bounding_box([0, bounds.top], width: bounds.width / 2) do
text 'Left Footer' * 3, size: 36, color: '0000FF'
stroke_bounds
end
bounding_box([bounds.width / 2, bounds.top], width: bounds.width / 2) do
text 'Right Footer' * 3, size: 36, color: '0000FF'
stroke_bounds
end
end
end
def setup_page
define_grid(columns: 12, rows: 8, gutter: 10)
end
def page_options
{
page_size: ::PDF::Core::PageGeometry::SIZES['A4'],
page_layout: :portrait
}
end
end
Doc.new.render_file 'doc.pdf'
位于同一页面上,即没有分页符,我需要检查高度并查看它是否适合当前页面,如果没有插入分页。
问题是我没有办法为检查创建边界框,然后绘制它。
或者还有另一种方法可以确保内容不会被拆分,确保内容都在同一页上?