gmazza      2004/07/14 15:42:29

  Modified:    examples/embedding/java/embedding ExampleFO2PDF.java
  Log:
  Updated FO->PDF example to use JAXP.
  
  Revision  Changes    Path
  1.9       +30 -19    xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java
  
  Index: ExampleFO2PDF.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/examples/embedding/java/embedding/ExampleFO2PDF.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ExampleFO2PDF.java        9 Jul 2004 01:48:58 -0000       1.8
  +++ ExampleFO2PDF.java        14 Jul 2004 22:42:29 -0000      1.9
  @@ -24,8 +24,13 @@
   import java.io.InputStream;
   import java.io.OutputStream;
   
  -// SAX
  -import org.xml.sax.InputSource;
  +//JAXP
  +import javax.xml.transform.Transformer;
  +import javax.xml.transform.TransformerFactory;
  +import javax.xml.transform.Source;
  +import javax.xml.transform.Result;
  +import javax.xml.transform.stream.StreamSource;
  +import javax.xml.transform.sax.SAXResult;
   
   // FOP
   import org.apache.fop.apps.Driver;
  @@ -45,28 +50,34 @@
        */
       public void convertFO2PDF(File fo, File pdf) throws IOException, FOPException {
           
  -        // Construct driver
  -        Driver driver = new Driver();
  +        OutputStream out = null;
           
  -        // Setup Renderer (output format)        
  -        driver.setRenderer(Driver.RENDER_PDF);
  -        
  -        // Setup output
  -        OutputStream out = new java.io.FileOutputStream(pdf);
  -        out = new java.io.BufferedOutputStream(out);
           try {
  +            // Construct driver and setup output format
  +            Driver driver = new Driver();
  +            driver.setRenderer(Driver.RENDER_PDF);
  +    
  +            // Setup output
  +            out = new java.io.FileOutputStream(pdf);
  +            out = new java.io.BufferedOutputStream(out);
               driver.setOutputStream(out);
   
  -            //Setup input
  -            InputStream in = new java.io.FileInputStream(fo);
  -            try {
  -                driver.setInputSource(new InputSource(in));
  +            // Setup JAXP using identity transformer
  +            TransformerFactory factory = TransformerFactory.newInstance();
  +            Transformer transformer = factory.newTransformer(); // identity 
transformer
  +            
  +            // Setup input for XSLT transformation
  +            Source src = new StreamSource(fo);
               
  -                //Process FO
  -                driver.run();
  -            } finally {
  -                in.close();
  -            }
  +            // Resulting SAX events (the generated FO) must be piped through to FOP
  +            Result res = new SAXResult(driver.getContentHandler());
  +            
  +            // Start XSLT transformation and FOP processing
  +            transformer.transform(src, res);
  +
  +        } catch (Exception e) {
  +            e.printStackTrace(System.err);
  +            System.exit(-1);
           } finally {
               out.close();
           }
  
  
  

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

Reply via email to