Prawn: multiple calls to formatted_text_box within a bounding_box?

I’m a newbie to prawn, but enjoying using it. The API is very nicely
conceived …

I’m generating a multi-column doc from the content of an xml file. The
doc looks good at this point, but I’m trying to improve one part of the
coding. I’m currently doing this …

  • Read one tag value at a time from the xml file, and create a hash with
    the text and styling, and add that to a text array.
  • For each page and for each column within the page, call
    formatted_text_box with the text array, and catch the return (overflow)
    in the same array.

I’m testing with xml files that generate about 5-10 pages, but I’m
concerned that if I get a 1000-page xml file, I’ll use huge amounts of
memory in generating the text array. What I’d like to do is something
more like …

  • For each page and for each column, read an xml tag value, call
    formatted_text_box, and terminate the column when formatted_text_box
    returns an overflow.

In multiple calls, each call starts over at the top of the bounding box,
superimposing all entries in the bounding_box. Is there an optional arg
somewhere that will position the text for the call at the last cursor
position in the bounding box?

I could do create a new (blind) BoundingBox and use that, gradually
adding more and more entries to the text array until it did overflow,
then use that array on a non-blind box in the document, then start the
next column with the overflow. Determining the amount of text for each
column is O(N^^2), which could get pretty slow with a small font.

Or I could determine the minimum number of characters I’d need in the
array by determining once how many minimum-size chars (sans-serif “i”?)
would fit in the bounding box, then read at least that many characters
from the xml file, but that approach seems inelegant.

Thanks in advance for any tips …