Georg Datterl wrote:
I started to fool around a bit with the FOP source code and your suggestion:
I've just had a quick look and there seems to be almost nothing to do on the layout side (which is good news). You just have to
go on l.111 of org.apache.fop.layoutmgr.PageBreaker (handleSpanChange method) and replace the assignment appropriately. Instead
needColumnBalancing = (childLC.getNextSpan() == Constants.EN_ALL); something
needColumnBalancing = (childLC.getNextSpan() == Constants.EN_ALL)
Simply setting false already gave me the desirable result on a small example.
Indeed, it worked on a small example, but a bigger example gave me an
unexpected heart attack.
Maybe you shouldn’t take this task too seriously. I’d hate that FOP
causes you health problems ;-)
If the wide block is in the first column, the result looks like
I expected it, but then I had a wide block in the second column and
instead of moving to the next page, I got balancing again:
I couldn’t reproduce that. Can you please post the FO file showing the
What I’m getting is that the spanning block is deferred to the next
page. Something like that:
Which should match your expectations, IIC.
I guess, the next step is somewhere in Phase 3, but I've yet to
understand the effect of needColumnBalancing there. Any hints? ;-)
Columns are first typeset as normal, that is, as if there were no
spanning block that follows. Which means that the first column is filled
until the bottom of the page is reached, then the second column, etc.
needColumnBalancing is used to indicate that the layout must be re-made:
the first column must no longer be entirely filled, instead content must
be spread over the columns so that they have similar heights.