keiron      01/09/25 01:32:58

  Modified:    docs/examples/embedding FopServlet.java fop.war
  Log:
  updated servlet to reflect changes to fop
  
  Revision  Changes    Path
  1.4       +53 -9     xml-fop/docs/examples/embedding/FopServlet.java
  
  Index: FopServlet.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/docs/examples/embedding/FopServlet.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- FopServlet.java   2001/08/10 07:50:22     1.3
  +++ FopServlet.java   2001/09/25 08:32:58     1.4
  @@ -1,12 +1,10 @@
   /*
  - * $Id: FopServlet.java,v 1.3 2001/08/10 07:50:22 keiron Exp $
  + * $Id: FopServlet.java,v 1.4 2001/09/25 08:32:58 keiron Exp $
    * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
    * For details on use and redistribution please refer to the
    * LICENSE file included with these sources.
    */
   
  -package org.apache.fop.tools.servlet;
  -
   import java.io.*;
   
   import javax.servlet.*;
  @@ -17,7 +15,9 @@
   
   import org.apache.fop.apps.Driver;
   import org.apache.fop.apps.Version;
  +import org.apache.fop.apps.XSLTInputHandler;
   
  +import org.apache.log.*;
   
   /**
    * Example servlet to generate a PDF from a servlet.
  @@ -26,23 +26,45 @@
    *   <li>fo: the path to a formatting object file to render
    * </ul>
    *
  - * Example URL: http://servername/servlet/FopServlet?fo=/home/fop/example/readme.fo
  + * Example URL: http://servername/servlet/FopServlet?fo=readme.fo
  + * Example URL: http://servername/servlet/FopServlet?xml=data.xml&xsl=format.xsl
    * Compiling: you will need 
    * - servlet_2_2.jar
    * - fop.jar
    * - sax api
  + * - logkit jar
  + *
  + * Running: you will need in the WEB-INF/lib/ directory:
  + * - fop.jar
  + * - batik.jar
  + * - avalon-framework-4.0.jar
  + * - logkit-1.0b4.jar
  + * - xalan-2.0.0.jar
    */
  -
   public class FopServlet extends HttpServlet {
       public static final String FO_REQUEST_PARAM = "fo";
  +    public static final String XML_REQUEST_PARAM = "xml";
  +    public static final String XSL_REQUEST_PARAM = "xsl";
  +    Logger log = null;
   
       public void doGet(HttpServletRequest request,
                         HttpServletResponse response) throws ServletException {
  +        if(log == null) {
  +            Hierarchy hierarchy = Hierarchy.getDefaultHierarchy();
  +            log = hierarchy.getLoggerFor("fop");
  +            log.setPriority(Priority.WARN);
  +        }
           try {
  -            if (request.getParameter(FO_REQUEST_PARAM) != null) {
  -                FileInputStream file = new FileInputStream(
  -                                         request.getParameter(FO_REQUEST_PARAM));
  +            String foParam = request.getParameter(FO_REQUEST_PARAM);
  +            String xmlParam = request.getParameter(XML_REQUEST_PARAM);
  +            String xslParam = request.getParameter(XSL_REQUEST_PARAM);
  +
  +            if (foParam != null) {
  +                FileInputStream file = new FileInputStream(foParam);
                   renderFO(new InputSource(file), response);
  +            } else if((xmlParam != null) && (xslParam != null)) {
  +                XSLTInputHandler input = new XSLTInputHandler(new File(xmlParam), 
new File(xslParam));
  +                renderXML(input, response);
               } else {
                   PrintWriter out = response.getWriter();
                   out.println("<html><head><title>Error</title></head>\n"+
  @@ -69,17 +91,39 @@
               response.setContentType("application/pdf");
   
               Driver driver = new Driver(foFile, out);
  +            driver.setLogger(log);
  +            driver.setRenderer(Driver.RENDER_PDF);
               driver.run();
   
               byte[] content = out.toByteArray();
               response.setContentLength(content.length);
               response.getOutputStream().write(content);
               response.getOutputStream().flush();
  -
           } catch (Exception ex) {
               throw new ServletException(ex);
           }
  +    }
  +
  +    public void renderXML(XSLTInputHandler input,
  +                         HttpServletResponse response) throws ServletException {
  +        try {
  +            ByteArrayOutputStream out = new ByteArrayOutputStream();
  +
  +            response.setContentType("application/pdf");
   
  +            Driver driver = new Driver();
  +            driver.setLogger(log);
  +            driver.setRenderer(Driver.RENDER_PDF);
  +            driver.setOutputStream(out);
  +            driver.render(input.getParser(), input.getInputSource());
  +
  +            byte[] content = out.toByteArray();
  +            response.setContentLength(content.length);
  +            response.getOutputStream().write(content);
  +            response.getOutputStream().flush();
  +        } catch (Exception ex) {
  +            throw new ServletException(ex);
  +        }
       }
   
       /**
  
  
  
  1.2       +19 -34    xml-fop/docs/examples/embedding/fop.war
  
        <<Binary file>>
  
  

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

Reply via email to