Hi,

I noticed that I did not update some of the comments in the Javadoc
to reflect the changes I made...
If those changes are accepted, I'll be glad to update the Comments
and take a look at some of the docs about embedding.

Michel.

> -----Original Message-----
> From: Michel Lehon [mailto:[EMAIL PROTECTED]]
> Sent: Monday, 13 August, 2001 15:24
> To: [EMAIL PROTECTED]
> Subject: Problem with FOP 0.20.0 when using the ContentHandler to feed
> SAX events...
>
>
> Hi,
>
> I just upgraded our program to use FOP 0.20.0
> We embedded FOP and used the old official method to call it.
>
> I mean using somthing like this :
>         Driver driver = new Driver();
>         driver.setRenderer(Driver.RENDER_PDF);
>         ByteArrayOutputStream out = new ByteArrayOutputStream();
>         driver.setOutputStream(out);
>
>         ContentHandler cnth = driver.getContentHandler();
>         sendSAXEvents(cnth);
>
>         driver.format();
>         driver.render();
>
>         byte[] content = out.toByteArray();
>
> However this not longer works with 0.20.0
> for a few reasons:
> 1) there is no driver.format() method.
> 2) there is no driver.render() method (there are two version with
> parameters).
>
> Still removing those two method calls still does not work as
> using the ContentHandler returned by driver.getContentHandler
> generates a NullPointException because the
> _treeBuilder.setStreamRenderer(streamRenderer)
> is not called (and the FOTreeBuilder needs it).
>
> so I changed a few lines in Driver.java to fix this...
> I added a method driver.prepareRender() that setups the _treeBuilder
> I changed both render method to use the new prepareRender
> so my program now looks like this (and works).
>
>         Driver driver= new Driver();
>         driver.setRenderer(Driver.RENDER_PDF);
>         ByteArrayOutputStream out = new ByteArrayOutputStream();
>         driver.setOutputStream(out);
>         driver.prepareRender();
>
>         ContentHandler cnth = driver.getContentHandler();
>         sendSAXEvents(cnth);
>
>         byte[] content = out.toByteArray();
>
> What do you think ? Was it a good idea ? anyother idea on how to acheive
> this ?
>
> I though about putting back the render() method (without
> parameters), but I
> tough it was
> weird as it would need to be called before the SAX events are generated.
>
> Michel Lehon
> [EMAIL PROTECTED]
> SAS Data Warehousing and Web Enablement.
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to