Andreas L. Delmelle wrote:
Nested inlines... My guess is: there's the bugger!

Correct.

Can you try rendering again, but replacing the inner fo:inline in the above
snippet with an fo:wrapper,

Won't work. The problem is as follows: The line layout is called with a bunch of characters. It is scanned for possible line breaks, more or less whitespace (which is incomplete in itself). If the character sequence is exhausted before a break possibility is encountered but there's still space left in the line, the text snippet processed so far is stored in the pending area list, because it might be wrapped to the next line. Upon the next call, scanning proceeds, and if the line is full without finding a break possiblity, processing is unwound unto the block, which generates a new line. This new line grabs the pending area list from the previous line and adds it to itself, because it's word content which had been wrapped.

The problem occurs if the overflowed line is at the end of the
page, because the block layout code which would otherwise
generate a new line returns up to the page layout loop.
New block areas are created, the link to the line with the
non-empty pending area list is lost, and the new line starts
without the wrapped text. The error message is generated in
the renderer which simply looks at the pending area list of
the line, which should have been emptied.

The problem occurs rarely because it only happens if a word is
fragmented so that the pending area list is filled. Because
some code accumulates the SAX character events, only inline
FOs which mark parts of a word may cause this. The only way
around the bug is to eliminate the inline FOs, or fine tune
display space in order to avoid having the content in question
falling at the edge of a page.

A similar, but code-wise unrelated bug occurs when an inline
graphic is added which is too high to fit the available space
on the page: the text already in the line is lost. Fortunately,
FOP can't cope with dynamic line height anyway, so people
rarely do this.


J.Pietschmann

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to