So I sent a message to the fop-users list yesterday because there's something I can't figure out how to do, but it might belong on the dev list if there actually isn't a way to do it? So I'm a little confused...
Here's my case. I'm using FOP 0.95 jars for reporting with embedded code in client-server programs using webstart. I start with an XML file and an XSL file on the server. I can transform these on the server and get the results in an output stream which I can send to a printer or copy to the client and save as a PDF on their local machine. That works great. Now I have an option to send the output to a custom print preview window using the PreviewPanel object. That of course has to be created on the client. I don't see any way to use the output stream from the transform on the server as input to that object. The only way I currently have it working is to stream down the XML and XSL files and do the transform on the client. It seems this loads the data into the PreviewPanel object because the PreviewPanel constructor passes in the FOUserAgent, which is also the input parameter to the FopFactory.newFop() method, the Fop.getDefaultHandler method is the input to the SAXResult constructor, and the SAXResult is the input to the transform so they're all linked. This takes a lot longer than transforming on the server and getting the output stream which can either be printed or saved as a PDF. Am I missing something? Does all of this processing have to be done on the client to use the PreviewPanel? It has a third input parameter of class Renderable. It seems this refers to an interface, but I don't see anything which implements it or returns an object of this class. Do I need to create my own custom class to use it? Does this need to be connected to the FOTreeBuilder or DefaultHandler class? Why does AWTRenderer have a setRenderable method but no getRenderable method?
