I have updated the example of trying to transcode an SVG file to JPG and send it to the client. First, I had the wrong MIME type, although fixing that didn't help. Second, I realized that the transcoder might close the output stream, which would be a Bad Thing for a servlet, so I have changed it to transcode to a ByteArrayOutputStream, which then feeds to the response. I also added response.reset(), but that didn't help either. I still get the same "broken pipe" the second time I call on the servlet. ===================== public void headerInfo( HttpServletRequest request, HttpServletResponse response, String contentType) { response.setContentType( contentType ); response.setHeader("Cache-Control", "no-cache, post-check=0, pre-check=0"); String agent = request.getHeader("User-Agent").toLowerCase(); // netscape chokes on Pragma no-cache so only send it to explorer if (agent.indexOf("explorer") > -1){ response.setHeader("Pragma", "no-cache"); } response.setHeader("Expires", "Thu, 01 Dec 1994 16:00:00 GMT"); } public void emitJPG ( HttpServletRequest request, HttpServletResponse response, String svgString ) { ByteArrayOutputStream baos = new ByteArrayOutputStream(16384); response.reset(); JPEGTranscoder t = new JPEGTranscoder(); t.addTranscodingHint(JPEGTranscoder.KEY_QUALITY, new Float(.8)); TranscoderInput input = new TranscoderInput( new StringReader(svgString) ); try { TranscoderOutput output = new TranscoderOutput(baos); t.transcode(input, output); } catch (Exception e) { System.err.println("Error in EmitJPG"); e.printStackTrace(); } headerInfo( request, response, "image/jpeg"); try { baos.writeTo(response.getOutputStream()); } catch (Exception e) { System.err.println("Error in writing output"); e.printStackTrace(); } } ==================== --- J. David Eisenberg http://catcode.com/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]