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());}         }  }
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist