Thanks Javid and Thomas for the replies,


Have got it working now after reading your suggestions.... just to close the thread in case anyone else is looking for similar in the future, required code looks something like this (of course adding the flushing/closing of streams).....


            TranscoderInput input = new TranscoderInput(doc);

            OutputStream ostream = new ByteArrayOutputStream();

            TranscoderOutput output = new TranscoderOutput(ostream);

            t.transcode(input, output);

            ByteArrayOutputStream result = (ByteArrayOutputStream)output.getOutputStream();

byte[] bytes = result.toByteArray();


Thanks as ever for the help,






-----Original Message-----
From: []
Sent: 19 June 2006 21:07
Subject: Re: Streaming SVG Document without creating temporary file


Hi Dylan,


"Dylan Browne" <> wrote on 06/19/2006 07:25:57



> I was looking for way to improve my code where I stream an SVG Document

> (created using Batik DOM) to a browser. So basically I need to get from


> Document to a byte[] which can be passed via Servlet which sets the Mime


> and so displayed.


   Well the transcoder can take _any_ OutputStream.  Usually the

servlet provides an output stream that could be passed directly to

the Transcoder.  Alternately you can use

which simply stores all the content in memory which you can retrieve

as a byte[].


> Currently I use my method below, but as part of this method I am

creating a

> file object and retrieving my byte[] from that. Ideally (it may actually


> become a requirement) I?d like to avoid this step and be able to

retrieve a

> byte[] without creating a file object.


>             OutputStream ostream = new FileOutputStream("c:\\out." +


>             TranscoderOutput output = new TranscoderOutput(ostream);




To unsubscribe, e-mail:

For additional commands, e-mail: