From: "Keiron Liddle" <[EMAIL PROTECTED]> > On 2002.03.19 16:47 Nicola Ken Barozzi wrote: > > So we absolutely need to stop output and cache events if there is a > > forward > > reference. > > If we find it at the end, all the pages must remain in memory, and now I > > see > > that this can make FOP behave no better than it does now. > > Thats not true. We can do better and the current development is developing > towards a way that will do better. > The key is that there is a definite API between the Area Tree and the > Renderers. This means that we can prepare a page and later render its > contents. All following pages can be rendered if they are finished. The > forward reference resolution can be done in the area tree with the help of > the layout managers and then the completed page can be rendered (depends > if the renderer supports out of order which pdf does). If the memory gets > low then a page can be stored to disk and retrieved when forward > references are resolved.
Ah, so it's done with pages. But with some renderers pages could not be defined (as the spec allows), like in HTML rendering. Anyway, I didn't come up with this possibility, since I don't usually deal with them, but it's a really neat solution to the problem, but still useless if every page has forward references. > Without needing to handle this on two sides of > the fence it is more straight forward and flexible. Two sides of the fence? Never thought so. Ok, so I see that there is agreement on the fact that using SAX events as intermediate steps of the FOP processing pipeline is not the best solution ATM. I will focus now on implementing Avalon stuff in FOP, starting from Configuration (non static) and URI resolving (for images). Thank you all for the wonderful feedback on my Random Thoughts :-) -- Nicola Ken Barozzi [EMAIL PROTECTED] - verba volant, scripta manent - (discussions get forgotten, just code remains) --------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]