Prawn pdf和分页符

时间:2012-06-25 17:32:53

标签: ruby pdf-generation prawn

我正在尝试使用Prawn 0.12.0生成pdf。

我呈现的内容非常动态,通常跨越多个页面。

我遇到的问题是,当它自动启动新页面时,当前的边界框会“中断”。 在新页面上呈现的文本没有正确的边界框。 如果我使用stroke_bounds,我可以在页面的最底部看到底部笔划。 我已经在各种论坛上阅读过这个问题,但似乎无法弄清楚究竟发生了什么。

以下是循环内容的具体代码:

items.each do |item|
  group do
    title_text = [{ text: item.title, styles: [@heading_style], size: 11}]
    formatted_text title_text
    text(item.description, size: 9)
    stroke { line(bounds.bottom_left, bounds.bottom_right); }
  end
end

你可以这样我想在每个项目下面画一条线,这就是为什么我需要当前的边界框是正确的。

1 个答案:

答案 0 :(得分:2)

根据以下的虾文档: http://prawnpdf.org/manual.pdf

边界框绑定到页边距:

A bounding box is a structure which provides boundaries for inserting content. A bounding box
also has the property of relocating the origin to its relative bottom-left corner. However, be aware
that the location specified when creating a bounding box is its top-left corner, not bottom-left
(hence the [100, 300] coordinates below).

对于将在页面中优雅地流动的边界类型,跨度是更好的选择:

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. 

跨度应该能够包含所需的线条笔划。 希望这可以帮助。