This gave me a NullPointerException, because the Driver only sets the StreamRenderer on the FOTreeBuilder when calling one of the two render() methods. (Which is not necesarry when using the ContentHandler instead.) Therefore I used the following hack to make things work:
StreamRenderer streamRenderer = new StreamRenderer(new FileOutputStream("c:\\baz.pdf"), driver.getRenderer());
But I still get a NullPointerException. I cannot, however, see where it is thrown, as Xalan eats all original exceptions.
If serialize the excact same series of SAX events into a file and run FOP as a command-line program on this file - everything works dandy.
So what this boils down to is: I can get FOP to process the XML as long as it comes from an XMLReader (Xerces), but it won't process the excact same XML when it comes from Xalan.
I suspect that the problem could be namespace-related. But what can I do differently with the Driver/FOTreeBuilder?
Dennis Thrysoe - Netnord A/S wrote:
> Keiron Liddle wrote: > >> On 2001.12.22 21:53 Dennis Thrysoe - Netnord A/S wrote: >> >>> Hi, >>> >>> Is there an easy way of embedding FOP, including a stylesheet >>> transformation? >>> >>> Using the Driver class doesn't seem to allow this (or did I miss >>> something?). >>> >>> If I use Xalan to generate results to the ContentHandler, that the >>> Driver instance returns, I get an error: >>> >>> Unknown formatting object http://www.w3.org/XSL/Format/1.0^root >> >> >> >> You have the wrong namespace, it should be: >> http://www.w3.org/1999/XSL/Format > > > That's what I originally tried, but then I got (the same): > > building formatting object tree > setting up fonts > WARNING: Unknown formatting object http://www.w3.org/1999/XSL/Format^root > > > Any help still very much appreciated... > > -dennis