大虾:自动浮动文本到一个新的页面(Prawn: float text automatically t

2019-09-30 15:56发布

我有以下简单的代码来生成PDF。

def employe_details
        y = cursor
bounding_box([0, y], :width => 16.cm) do
          @employe.each do |pr|
                txt = pr.week.to_s + ' '
                txt += "work hours"
                text_box txt, size: 11, :at => [0.5.cm, cursor]
                move_down 0.4.cm
            end
              .#more similar texts
              .
              .    
end

问题是,这不会自动创建一个新的页面。 当文本超过第一页,文本的其余部分并没有在所有或这些文本显示在新的页面不显示。

如何自动浮动文本到一个新的页面,当它到达页的结尾?

更新:问题与我的代码似乎与这条线:at => [0.5.cm, cursor] ,如果我删除的位置,然后它就会流向下一个页面,同样的当我使用范围发生。 如果我使用位置在跨度文本,然后它也不会流到下一个页面,如果我删除它,然后它流到下一个页面。 所以,我怎么可以用这样的

text_box txt, size: 11, :at => [0.5.cm]
text txt, size: 11, :at => [0.5.cm]

文本框或文本,而不光标位置,我需要使用x位置,因为每一行都有不同的X位置。

Answer 1:

bounding_box内容不会流到下一个页面。 您可以使用span来代替:(强调)

甲跨度是一个特殊用途的边界框,其允许元件的列相对于所述margin_box被定位。

此方法通常用于从一个页面流文本的一列到下一个

该手册中提到这35页:

这个例子也显示了跨页的文本流以下的保证金箱等边界框。

 # ... move_cursor_to 200 span(350, :position => :center) do text "Span is a different kind of bounding box as it lets the text " + "flow gracefully onto the next page. It doesn't matter if the text " + "started on the middle of the previous page, when it flows to the " + "next page it will start at the beginning." + " _ " * 500 + "I told you it would start on the beginning of this page." end 

结果显示在37/38页:



文章来源: Prawn: float text automatically to a new page