try {
//Set up a custom user agent so we can supply our own renderer instance
FOUserAgent userAgent = fopFactory.newFOUserAgent();
//Set up our own PrintRenderer instance so we can supply a special PrinterJob instance.
PrintRenderer renderer = new PrintRenderer(printerJob);
renderer.setUserAgent(userAgent);
userAgent.setRendererOverride(renderer);
// Construct fop with desired output format (here, it is set through the user agent)
Fop fop = fopFactory.newFop(userAgent);