I posted this about a week ago, but here you go again... Jim
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException { ... your code try { String xmlString = new String("...."); // your xml TransformerFactory tFactory = TransformerFactory.newInstance(); File foFile = new File("foXslFile.xsl"); Source foXslSource = new StreamSource(foFile); Transformer pdfTransformer = tFactory.newTransformer(foXslSource); Writer out = new StringWriter(); Source xmlSource = new StreamSource(new StringReader(xmlString)); pdfTransformer.transform(xmlSource, new StreamResult(out)); out.close(); String fopstring = out.toString(); InputSource foSource = new InputSource(new StringReader(fopstring)); ByteArrayOutputStream baout = new ByteArrayOutputStream(); Driver driver = new Driver(foSource , baout); res.setContentType("application/pdf"); driver.setRenderer(Driver.RENDER_PDF); driver.run(); byte[] content = baout.toByteArray(); res.setContentLength(content.length); // This keeps IE happy!!!! res.getOutputStream().write(content); res.getOutputStream().flush(); res.flushBuffer(); } catch (Exception e) { System.err.println("Exception in init: " + e.toString()); e.printStackTrace(); } ... more code } > -----Original Message----- > From: David B. Bitton [mailto:[EMAIL PROTECTED]] > Sent: Friday, March 08, 2002 11:27 PM > To: fop-dev > Subject: HowTo Render PDF from XML string and XSL file > > > I have spent some time looking at the embedding sample, and I have some > questions. I have successfully implemented FOP as a WebService having the > XSL-FO data posted to the service and the service rendering the file onto > the local machine. Now I want to do the XML/XSL to XSL-FO > transform in the > WebService. > > I noticed that the transform occurs in the XSLInputHandler. This then > allows for an InputSource and XMLReader to be available to the > Driver.render() overloaded method. The unfortunate part is the > XSLInputHandler constructor only takes File object, no stream. > I'd like to > avoid bouncing the XML data off the disk just to statisfy this requirement > for using XSLInputHandler. > > So, my question is this, how can I arrive at the same results, an > InputSource and an XMLReader interfaced object for Driver.render()? Or > better yet, what I'm asking is what is going on inside > XSLInputHandler that > I can slurp out into my code. Tx :) > > -- > > David B. Bitton > [EMAIL PROTECTED] > www.codenoevil.com > > Diversa ab illis virtute valemus. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, email: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]