Hello -
I'm fairly new to the fop tools but I've had some success so far. Recently I've been stuck on printing to an
printer. I have a couple questions for folks in the know.

First, is FOP's printing robust? Will it handle large print jobs using a reasonable amount of memory? Any concerns about using it on the server side from within servlet engine?

Second, and probably more critical: how do I get it to work? Currently I'm using the Driver as I would with any other renderer:

public void print(InputSource xmlFoData) throws SystemException {
  try {
    Driver driver = new Driver();
    driver.setRenderer(Driver.RENDER_PRINT);
    driver.render(null, xmlFoData);
  } catch (FOPException e) {
    throw new SystemException("Printing failed", e);
  }
}

When I run the code I get the following exception:
edu.stanford.medit.SystemException: XSL parsing exception
Caused by: java.lang.IllegalArgumentException: Use renderer form of setRenderer() for PRINT
at org.apache.fop.apps.Driver.setRenderer(Driver.java:341)
at edu.stanford.medit.Printing.print(Printing.java:52)
at edu.stanford.medit.test.PrintingTestCase.testPrint(PrintingTestCase.java:86)
... 15 more
 
I looked around in the source for examples but I couldn't seem to find anything resembling a recommended solution. The only thing I found was in org.apache.fop.app.PrintStart which has an inner class that's doing most of the work. Should I copy the inner class or is there a better way?
 
Thanks in advance