如何检查一个boundbox是否适合Prawn中的当前页面

时间:2017-09-25 10:14:41

标签: ruby prawn

使用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' 位于同一页面上,没有分页符,我需要检查高度并查看它是否适合当前页面,如果没有插入分页。

问题是我没有办法为检查创建边界框,然后绘制它。

或者还有另一种方法可以确保内容不会被拆分,确保内容都在同一页上?

0 个答案:

没有答案