xmlgraphics-fop-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Savino, Matt C" <Matt.C.Sav...@questdiagnostics.com>
Subject RE: Seeking advice on HSSF
Date Thu, 01 May 2003 17:50:59 GMT
Thanks Jeremias. I think the main reason we are parsing the fodoc into a DOM is so we can serialize
the FO out to a file for debugging (it's either that or do the transformation twice). I'm
actually in the process of altering the HSSF stuff now so I can debug the GMR output. On your
adive I will change both of them back to a stream source for production. Although I seem to
remember experimenting extensively when we first started with SAX vs. DOM input sources using
the FOP XSLTInputHandler, SAXHandler, etc. As I recall, we didn't see much difference in performance.
But I will try it again for this round and let you know how it goes. Actually here is the
old commented out code from these tests:

      File xmlFile  = new File(xmlFilename);
      File xsltFile = new File(xsltFilename);
      org.apache.fop.apps.InputHandler inputHandler2 = new org.apache.fop.apps.XSLTInputHandler(xmlFile,
xsltFile);
      org.xml.sax.XMLReader parser2 = inputHandler2.getParser();
      driver.render(parser2, inputHandler2.getInputSource());

Is there a more efficient method I should try?

thx,
Matt



> >       org.w3c.dom.Document xmlDoc = dBuilder.parse(xmlFile);
> >       javax.xml.transform.dom.DOMSource xmlDomSource = new 
> javax.xml.transform.dom.DOMSource(xmlDoc);
> > 
> >       org.w3c.dom.Document xslDoc = dBuilder.parse(xsltFile);
> >       javax.xml.transform.dom.DOMSource xslDomSource = new 
> javax.xml.transform.dom.DOMSource(xslDoc);
> 
> Why do you parse the whole thing into a DOM? That's very inefficient
> when you subsequently give it to JAXP anyway. A StreamSource 
> would be a
> lot better!
> 
> Have a look at the Example*.java in the latest FOP distribution under
> examples/embedding.
> 
> > 
> >       javax.xml.transform.TransformerFactory tFactory 
> >          = javax.xml.transform.TransformerFactory.newInstance();
> >       javax.xml.transform.Templates templates = 
> tFactory.newTemplates(xslDomSource);
> >       javax.xml.transform.Transformer transformer = 
> templates.newTransformer();
> >   
> >       ByteArrayOutputStream out = new ByteArrayOutputStream();
> > 



> >       org.w3c.dom.Document foDoc = 
> (org.w3c.dom.Document)domResult.getNode();
> 
> Again, don't do that. Use SAX as with the HSSF serializer:
> 
>         Result result = new SAXResult(driver.getContentHandler());
>         transformer.transform(xml, result);
>         
> See how similar the code is to the one for HSSF?
> 
> >       org.apache.fop.apps.Driver driver = new 
> org.apache.fop.apps.Driver();
> >       driver.setErrorDump(true);
> >       driver.setRenderer(driver.RENDER_PDF);
> >       driver.setupDefaultMappings() ;
> > 	driver.setOutputStream(out);
> >       driver.render(foDoc);
> > 
> >       response.setContentType("application/pdf");


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org


Mime
View raw message