3

我正在尝试使用 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

如您所见,我想在每个项目下方画一条线,这就是为什么我需要当前边界框正确的原因。

4

1 回答 1

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. 

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

于 2014-12-12T22:28:09.020 回答