Jeremias,
...
Jeremias Maerki wrote:
We have it already (to a certain extent)....unless I fail to see the point. We have: org.apache.fop.svg.PDFDocumentGraphics2D org.apache.fop.render.ps.PSDocumentGraphics2D org.apache.fop.render.ps.EPSDocumentGraphics2D
Of course, it will take some more time to mature but the most important parts are there.
I have even added support for multi-page generation in AbstractPSDocumentGraphics2D. Will be easy to add to PDFDocumentGraphics2D.
At one point I did a proof-of-concept (not committed) to use the three classes above to create additional output formats for JPS (Java Printing System).
Thanks for the info. You didn't miss the point, I did. I hadn't even looked at your svg or ps handling, and I had forgotten your earlier mention of the uncommitted proof of concept. I was talking "concepts" here anyway, and I'm exhilarated to find that you have already done so much work along these lines. Can you drop your code into a branch?
One downside I see by using the Graphics2D exclusively is that you will (probably) lose the ability to pass through in-stream objects (JPEGs and SVGs) as-is to the target format. A JPEG will be decoded into a BufferedImage, an SVG will be rendered to a Graphics2D and reencoded as SVG, EPS might not make it into a PS file as-is anymore unless we create a PostScript interpreter (still on my very-long-term wish-list).
On the image and foreign object front, although I haven't had time to think this through, I think there will be scope within the over-ridden methods to effectively do a pass-through. For layout, all we need to know is the laid-out size and positioning of the element. Images don't have to be fully rendered until they reach the renderer - PDF, PS, 2D. How this would work with those formats I don't know, because I don't know anything about image formats.
You guys might want to talk to Hansueli Anderegg who's a fan of the exclusive Java2D approach AFAICS. I'd personally prefer to leave the PDF and PS renderer intact in HEAD for now. No problem with creating a second path and then seeing which is best.
I don't see that happening, as I mentioned in my post. I was just excited by the notion of the SVG Generator, and wanted to rattle on a bit about it.
Peter -- Peter B. West <http://www.powerup.com.au/~pbwest/resume.html>