Thanks Renaud. BTW, have the licensing headaches been taken of? Did Oleg update the license headers for TIFF, etc? I'm happy to to hear of the Java2DRenderer/AWTRenderer split, but if there are any license issues in the other parts of the code, we should not be applying those portions.
Many thanks! Glen --- Renaud Richardet <[EMAIL PROTECTED]> wrote: > Here's my work in progress for the renderers (AWT, > Print, PNG and > TIFF). Could you please give it a quick look at my > patch , thanks. > There's a few points I would like to discuss. > > I splitted the AWTRenderer from the Java2DRenderer > and did some clean > up. I also created the PrintRenderer, PNGRenderer > and TIFFRenderer. > Please see the class diagram at the wiki > FopAndJava2D. I also > documented my work there. > > I end up with a lazy rendering: Java2DRenderer only > stores Viewports > and no Images. No actual rendering is done at this > point. Page images > are actually rendered (with getPageImage()) when the > concrete > renderers need them (that is: when the user wants to > see a page (AWT) > or just before the page is encoded (PNG and TIFF) or > printed. No > BufferedImage is stored. This way, the memory print > should be reduced. > Is this approach OK? Could there be some thread > issues? > > Renderer registration: > I'm unsure if I've registered the 2 new Renderers > (TIFF and PNG) > correctly in the front-end. Could you give it a > look, especially > RendererFactory.createFOEventHandler(), thanks. > > The PNG-Renderer outputs 1 picture per page > (right?), so we end up > with several files. > My pragmatic approach is to let the user specify the > first file name > on the command line (eg. "image1.png"). FOP then > creates the next > images using the same directory and name pattern > ("image2.png", ASO). > For this, I had to register the outfile in > FOUserAgent. > We could offer more configuration possibilities, but > I think it's > sufficient ATM. I don't feel like changing the front > end, which looks > very clean and robust. > > For PNG, TIFF and Print, the quality of the output > is _very_ poor. Am > I using the right image type in > Java2DRenderer.getPageImage(PageViewport > pageViewport) ? > Oleg used a TYPE_BYTE_BINARY, which seems to be the > only type which > works with the TIFFEncoder from Batik. See > TIFFRenderer$LazyPageImagesIterator.next(). But the > quality is poorer. > Any hints? > > AWTRenderer: > I had to modify PageViewport.isResolved(), so that > the flag "done" in > RenderPageModel.addPage() gets a chance to be set to > true. The Map > unresolvedID is sometimes empty, but not set to > null. > This way, the user can see the first page while the > layout engine is > still rendering the other pages in background. > Please let me know if > there's a better way to define isResolved(). > > PrintRenderer works somehow (with awt.PrintJob). But > what I would > really like to do is passing the output of the > PSRenderer to JPS > (o.a.f.render.print.JPSPrintRenderer), but that > doesn't seem to work > on windowsXP. I'll check that on linux. > > I put some more ant tasks on build.xml for the > examples tiff and png. > the target examples-png is throwing a > build.xml:1080: > java.lang.NullPointerException, and I don't > understand why?? > > Jeremias (and anybody else), if some of my work > collides with yours, > then just let me know. And please put this mail on > P5 and concentrate > on the Page Breaking and XMLGraphics-commons instead > ;) I won't work > on FOP until mid next week anyway. > > Regards, > Renaud > >  > http://issues.apache.org/bugzilla/show_bug.cgi?id=33760 >