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?

Reply via email to