devxlogo

Passing SAX Events to a FOP Processor

Passing SAX Events to a FOP Processor

This tip shows a Java application that can be used to pass SAX events to a FOP processor. It uses the javax.xml.parsers.SAXParser class:

In demo document:  C:Data_LocalxmldocsAirWings_fop.foOut demo document: C:Data_LocalxmldocsAirWings_pdf_sax.pdf*///FOPimport org.apache.fop.apps.Driver; import org.apache.fop.messaging.MessageHandler;//Avalonimport org.apache.avalon.framework.logger.Logger;import org.apache.avalon.framework.logger.ConsoleLogger;//Javaimport java.io.*;import org.xml.sax.*;import org.xml.sax.helpers.*;import javax.xml.parsers.*;public class SAX_FOP{          public static void main(String[] args){            OutputStream OS_pdf=null;   try{      //create an org.apache.fop.apps.Driver object      Driver fop=new Driver();              //setting a logger      Logger logger=new ConsoleLogger(ConsoleLogger.LEVEL_INFO);      fop.setLogger(logger);      MessageHandler.setOutputMethod(MessageHandler.SCREEN);      MessageHandler.setScreenLogger(logger);            //setting renderer      fop.setRenderer(Driver.RENDER_PDF);                                            try{      //setting the out stream      File F_pdf=new File("C://Data_Local//                             xml//docs//AirWings_pdf_sax.pdf");      OS_pdf=new FileOutputStream(F_pdf);         fop.setOutputStream(OS_pdf);      }catch(java.io.FileNotFoundException e)         {MessageHandler.error("[***   "+e.getMessage()+"  ***]");}              //get a ContentHandler      ContentHandler CH=fop.getContentHandler();      //get a SAXParserFactory object      SAXParserFactory SAXpf=SAXParserFactory.newInstance();                            //namespace activation                  if(SAXpf.isNamespaceAware()==false)                 SAXpf.setNamespaceAware(true);      //get a SAXParser object      SAXParser SAXp=SAXpf.newSAXParser();                                                //call a SAXParser.parse method      SAXp.parse("C://Data_Local//xml//docs//AirWings_fop.fo",                                  (DefaultHandler)(CH));      }catch(SAXException e)         {System.out.println(e.getMessage());      }catch(ParserConfigurationException e)             {System.out.println(e.getMessage());      }catch(IOException e)         {System.out.println(e.getMessage());}         }  }

devx-admin

Share the Post: