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 ...


Posted via