diff options
-rw-r--r-- | contrib/servlet/.cvsignore | 1 | ||||
-rw-r--r-- | contrib/servlet/README | 22 | ||||
-rwxr-xr-x | contrib/servlet/build.bat | 34 | ||||
-rwxr-xr-x | contrib/servlet/build.sh | 28 | ||||
-rw-r--r-- | contrib/servlet/build.xml | 92 | ||||
-rw-r--r-- | contrib/servlet/conf/web.xml | 21 | ||||
-rw-r--r-- | contrib/servlet/lib/readme.txt | 1 | ||||
-rw-r--r-- | contrib/servlet/src/FopPrintServlet.java | 240 | ||||
-rw-r--r-- | contrib/servlet/src/FopServlet.java | 136 |
9 files changed, 0 insertions, 575 deletions
diff --git a/contrib/servlet/.cvsignore b/contrib/servlet/.cvsignore deleted file mode 100644 index 378eac25d..000000000 --- a/contrib/servlet/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -build diff --git a/contrib/servlet/README b/contrib/servlet/README deleted file mode 100644 index ac4ebcef7..000000000 --- a/contrib/servlet/README +++ /dev/null @@ -1,22 +0,0 @@ -FOP Servlet Readme - -This directory contains two sample servlets that use FOP: - -- FopServlet can take a XSL:FO file or a XML+XSLT as parameters to create a PDF -that is being shown in the browser. - -- FopPrintServlet has the same parameters but prints the generated document to -the default printer instead of generating a PDF. - -Creating the WAR file: - -1. Get a servlet.jar and put it in the lib directory under this directory. -2. Run build.bat (on Windows) or build.sh (on Unix) to create the WAR file. -3. Put the WAR file in you favourite web container. - -Sample URLs: -http://localhost:8080/fop/servlet/FopServlet?fo=readme.fo -http://localhost:8080/fop/servlet/FopPrintServlet?fo=readme.fo - -Tip: If you have problems using Internet Explorer, try this URL: -http://localhost:8080/fop/servlet/FopServlet?fo=readme.fo&ext=.pdf diff --git a/contrib/servlet/build.bat b/contrib/servlet/build.bat deleted file mode 100755 index 12219144f..000000000 --- a/contrib/servlet/build.bat +++ /dev/null @@ -1,34 +0,0 @@ -@echo off - -echo Fop Servlet Build System -echo -------------------------- - -if "%JAVA_HOME%" == "" goto error - -set LIBDIR=../../lib -set LOCALCLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\classes.zip -set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\ant.jar -set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\xml-apis.jar -set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\xercesImpl-2.2.1.jar -set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\xalan-2.4.1.jar - -set ANT_HOME=%LIBDIR% - -echo Building with classpath %LOCALCLASSPATH% - -echo Starting Ant... - -%JAVA_HOME%\bin\java.exe -Dant.home=%ANT_HOME% -classpath "%LOCALCLASSPATH%" org.apache.tools.ant.Main %1 %2 %3 %4 %5 - -goto end - -:error - -echo ERROR: JAVA_HOME not found in your environment. -echo Please, set the JAVA_HOME variable in your environment to match the -echo location of the Java Virtual Machine you want to use. - -:end - -rem set LOCALCLASSPATH= - diff --git a/contrib/servlet/build.sh b/contrib/servlet/build.sh deleted file mode 100755 index 7baa6052e..000000000 --- a/contrib/servlet/build.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# This file should be executable. -echo -echo "Fop Servlet Build System" -echo "--------------------------" -echo - -if [ "$JAVA_HOME" = "" ] ; then - echo "ERROR: JAVA_HOME not found in your environment." - echo - echo "Please, set the JAVA_HOME variable in your environment to match the" - echo "location of the Java Virtual Machine you want to use." - exit 1 -fi -LIBDIR=../../lib -LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip -LOCALCLASSPATH=$LOCALCLASSPATH:$LIBDIR/ant.jar -LOCALCLASSPATH=$LOCALCLASSPATH:$LIBDIR/xml-apis.jar -LOCALCLASSPATH=$LOCALCLASSPATH:$LIBDIR/xercesImpl-2.2.1.jar -LOCALCLASSPATH=$LOCALCLASSPATH:$LIBDIR/xalan-2.4.1.jar -ANT_HOME=$LIBDIR - -echo -echo Building with classpath $LOCALCLASSPATH -echo Starting Ant... -echo - -$JAVA_HOME/bin/java -Dant.home=$ANT_HOME -classpath "$LOCALCLASSPATH" org.apache.tools.ant.Main $* diff --git a/contrib/servlet/build.xml b/contrib/servlet/build.xml deleted file mode 100644 index 36025f376..000000000 --- a/contrib/servlet/build.xml +++ /dev/null @@ -1,92 +0,0 @@ -<?xml version="1.0"?> -<project default="package" basedir="."> - <property name="Name" value="Fop Servlet"/> - <property name="name" value="fopservlet"/> - <property name="version" value="0.2cvs"/> - <!-- compiler switches --> - <property name="build.compiler" value="classic"/> - <property name="debug" value="off"/> - <property name="optimize" value="on"/> - <property name="deprecation" value="off"/> - <!-- directories --> - <property name="src.dir" value="./src"/> - <property name="conf.dir" value="./conf"/> - <property name="fop.lib.dir" value="../../lib"/> - <property name="lib.dir" value="./lib"/> - <property name="build.dir" value="./build"/> - <property name="build.src" value="./build/src"/> - <property name="build.dest" value="./build/classes"/> - <property name="build.war" value="./build/war"/> - <!-- stuff --> - <property name="servlet.jar" value="servlet.jar"/> - <path id="project.class.path"> - <fileset dir="${lib.dir}"> - <include name="*.jar"/> - </fileset> - <fileset dir="${fop.lib.dir}"> - <include name="avalon-framework*.jar"/> - <include name="batik*.jar"/> - </fileset> - <fileset dir="${fop.lib.dir}/../build"> - <include name="fop.jar"/> - </fileset> - </path> - <!-- =================================================================== --> - <!-- Initialization target --> - <!-- =================================================================== --> - <target name="init"> - <tstamp/> - <filter token="version" value="${version}"/> - <property name="year" value="1999-2002"/> - <echo message="------------------- ${Name} ${version} [${year}] ----------------"/> - <available property="servlet.present" classname="javax.servlet.Servlet" classpathref="project.class.path"/> - </target> - <target name="servlet-check" depends="init" unless="servlet.present"> - <echo message="============================================================================="/> - <echo message="servlet.jar is missing in the lib directory. Please get one and put it there."/> - <echo message="============================================================================="/> - <fail message="Dependecy check failed."/> - </target> - <!-- =================================================================== --> - <!-- Prepares the build directory --> - <!-- =================================================================== --> - <target name="prepare" depends="init, servlet-check"> - <!-- create directories --> - <echo message="Preparing the build directories"/> - <mkdir dir="${build.dir}"/> - <mkdir dir="${build.dest}"/> - </target> - <!-- =================================================================== --> - <!-- Compiles the source directory --> - <!-- =================================================================== --> - <target name="compile" depends="prepare"> - <echo message="Compiling the sources "/> - <javac srcdir="${src.dir}" destdir="${build.dest}" debug="${debug}" deprecation="${deprecation}" optimize="${optimize}"> - <classpath refid="project.class.path"/> - </javac> - </target> - <!-- =================================================================== --> - <!-- Creates the class package --> - <!-- =================================================================== --> - <target name="package" depends="compile"> - <echo message="Creating the WAR file"/> - <war warfile="${build.dir}/fop.war" webxml="${conf.dir}/web.xml"> - <lib dir="${fop.lib.dir}"> - <include name="avalon-framework*.jar"/> - <include name="batik*.jar"/> - </lib> - <lib dir="${fop.lib.dir}/../build"> - <include name="fop.jar"/> - </lib> - <classes dir="${build.dest}"/> - </war> - </target> - <target name="all" depends="package"/> - <!-- "all" target for us Makefile converts ;-) --> - <!-- =================================================================== --> - <!-- Clean targets --> - <!-- =================================================================== --> - <target name="clean" depends="init"> - <delete dir="${build.dir}"/> - </target> -</project> diff --git a/contrib/servlet/conf/web.xml b/contrib/servlet/conf/web.xml deleted file mode 100644 index 525dc8d07..000000000 --- a/contrib/servlet/conf/web.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" - "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> -<web-app> - <servlet> - <servlet-name>Fop</servlet-name> - <servlet-class>FopServlet</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>Fop</servlet-name> - <url-pattern>/</url-pattern> - </servlet-mapping> - <servlet> - <servlet-name>FopPrint</servlet-name> - <servlet-class>FopPrintServlet</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>FopPrint</servlet-name> - <url-pattern>/fopprint</url-pattern> - </servlet-mapping> -</web-app> diff --git a/contrib/servlet/lib/readme.txt b/contrib/servlet/lib/readme.txt deleted file mode 100644 index 4bcbb18c8..000000000 --- a/contrib/servlet/lib/readme.txt +++ /dev/null @@ -1 +0,0 @@ -Put servlet.jar (Version 2.2 or higher) in this directory!
\ No newline at end of file diff --git a/contrib/servlet/src/FopPrintServlet.java b/contrib/servlet/src/FopPrintServlet.java deleted file mode 100644 index dd9c4144b..000000000 --- a/contrib/servlet/src/FopPrintServlet.java +++ /dev/null @@ -1,240 +0,0 @@ -/* - * $Id$ - * Copyright (C) 2002 The Apache Software Foundation. All rights reserved. - * For details on use and redistribution please refer to the - * LICENSE file included with these sources. - */ - -import java.io.*; -import java.util.Vector ; - -import java.awt.print.PrinterJob ; -import java.awt.print.PrinterException ; - -import javax.servlet.*; -import javax.servlet.http.*; - -import org.xml.sax.InputSource; -import org.xml.sax.XMLReader; - -import org.apache.fop.apps.Driver; -import org.apache.fop.apps.FOPException; -import org.apache.fop.area.PageViewport; -import org.apache.fop.apps.Version; -import org.apache.fop.apps.XSLTInputHandler; - -import org.apache.fop.render.awt.AWTRenderer ; - -import org.apache.avalon.framework.logger.ConsoleLogger; -import org.apache.avalon.framework.logger.Logger; - -/** - * Example servlet to generate a fop printout from a servlet. - * Printing goes to the default printer on host where the servlet executes. - * Servlet param is: - * <ul> - * <li>fo: the path to a formatting object file to render - * </ul> - * - * Example URL: http://servername/fop/servlet/FopPrintServlet?fo=readme.fo - * Example URL: http://servername/fop/servlet/FopPrintServlet?xml=data.xml&xsl=format.xsl - * Compiling: you will need - * - servlet_2_2.jar - * - fop.jar - * - sax api - * - avalon-framework-x.jar (where x is the version found the FOP lib dir) - * - * Running: you will need in the WEB-INF/lib/ directory: - * - fop.jar - * - batik.jar - * - avalon-framework-x.jar (where x is the version found the FOP lib dir) - * - xalan-2.0.0.jar - */ - -public class FopPrintServlet 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) { - log = new ConsoleLogger(ConsoleLogger.LEVEL_WARN); - } - - try { - 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 { - response.setContentType ("text/html"); - - PrintWriter out = response.getWriter(); - out.println("<html><title>Error</title>\n"+ "<body><h1>FopServlet Error</h1><h3>No 'fo' or 'xml/xsl' "+ - "request param given.</h3></body></html>"); - } - } catch (ServletException ex) { - throw ex; - } - catch (Exception ex) { - throw new ServletException(ex); - } - } - - /** - * Renders an FO inputsource to the default printer. - */ - public void renderFO(InputSource foFile, - HttpServletResponse response) throws ServletException { - try { - Driver driver = new Driver(foFile, null); - PrinterJob pj = PrinterJob.getPrinterJob(); - PrintRenderer renderer = new PrintRenderer(pj); - - driver.enableLogging(log); - driver.setRenderer(renderer); - driver.run(); - - reportOK (response); - } catch (Exception ex) { - throw new ServletException(ex); - } - } - - /** - * Renders an FO generated using an XML and a stylesheet to the default printer. - */ - public void renderXML(XSLTInputHandler input, - HttpServletResponse response) throws ServletException { - try { - Driver driver = new Driver(); - PrinterJob pj = PrinterJob.getPrinterJob(); - PrintRenderer renderer = new PrintRenderer(pj); - - pj.setCopies(1); - - driver.enableLogging(log); - driver.setRenderer(renderer); - driver.render(input.getParser(), input.getInputSource()); - - reportOK (response); - } catch (Exception ex) { - throw new ServletException(ex); - } - } - - // private helper, tell (browser) user that file printed - private void reportOK (HttpServletResponse response) - throws ServletException { - String sMsg = - "<html><title>Success</title>\n" + "<body><h1>FopPrintServlet: </h1>" + - "<h3>The requested data was printed</h3></body></html>" ; - - response.setContentType ("text/html"); - response.setContentLength (sMsg.length()); - - try { - PrintWriter out = response.getWriter(); - out.println (sMsg); - out.flush(); - } catch (Exception ex) { - throw new ServletException(ex); - } - } - - // This is stolen from PrintStarter - class PrintRenderer extends AWTRenderer { - - private static final int EVEN_AND_ALL = 0; - private static final int EVEN = 1; - private static final int ODD = 2; - - private int startNumber; - private int endNumber; - private int mode = EVEN_AND_ALL; - private int copies = 1; - private PrinterJob printerJob; - - PrintRenderer(PrinterJob printerJob) { - super(null); - - this.printerJob = printerJob; - startNumber = 0 ; - endNumber = -1; - - printerJob.setPageable(this); - - mode = EVEN_AND_ALL; - String str = System.getProperty("even"); - if (str != null) { - try { - mode = Boolean.valueOf(str).booleanValue() ? EVEN : ODD; - } catch (Exception e) {} - - } - } - - public void stopRenderer() - throws IOException { - super.stopRenderer(); - - if (endNumber == -1) - endNumber = getPageCount(); - - Vector numbers = getInvalidPageNumbers(); - for (int i = numbers.size() - 1; i > -1; i--) - //removePage( - // Integer.parseInt((String) numbers.elementAt(i))); - - try { - printerJob.print(); - } catch (PrinterException e) { - e.printStackTrace(); - throw new IOException("Unable to print: " + - e.getClass().getName() + ": " + e.getMessage()); - } - } - - public void renderPage(PageViewport page) throws IOException, FOPException { - pageWidth = (int)((float) page.getViewArea().getWidth() / 1000f); - pageHeight = (int)((float) page.getViewArea().getHeight() / 1000f); - super.renderPage(page); - } - - - private Vector getInvalidPageNumbers() { - - Vector vec = new Vector(); - int max = getPageCount(); - boolean isValid; - for (int i = 0; i < max; i++) { - isValid = true; - if (i < startNumber || i > endNumber) { - isValid = false; - } else if (mode != EVEN_AND_ALL) { - if (mode == EVEN && ((i + 1) % 2 != 0)) - isValid = false; - else if (mode == ODD && ((i + 1) % 2 != 1)) - isValid = false; - } - - if (!isValid) - vec.add(i + ""); - } - - return vec; - } - } // class PrintRenderer - -} - diff --git a/contrib/servlet/src/FopServlet.java b/contrib/servlet/src/FopServlet.java deleted file mode 100644 index b28c6a7f7..000000000 --- a/contrib/servlet/src/FopServlet.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * $Id$ - * 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. - */ - -import java.io.*; - -import javax.servlet.*; -import javax.servlet.http.*; - -import org.xml.sax.InputSource; -import org.xml.sax.XMLReader; - -import org.apache.fop.apps.Driver; -import org.apache.fop.apps.Version; -import org.apache.fop.apps.XSLTInputHandler; - -import org.apache.avalon.framework.logger.ConsoleLogger; -import org.apache.avalon.framework.logger.Logger; - -/** - * Example servlet to generate a PDF from a servlet. - * Servlet param is: - * <ul> - * <li>fo: the path to a formatting object file to render - * </ul> - * - * Example URL: http://servername/fop/servlet/FopServlet?fo=readme.fo - * Example URL: http://servername/fop/servlet/FopServlet?xml=data.xml&xsl=format.xsl - * Compiling: you will need - * - servlet_2_2.jar - * - fop.jar - * - sax api - * - avalon-framework-x.jar (where x is the version found the FOP lib dir) - * - * Running: you will need in the WEB-INF/lib/ directory: - * - fop.jar - * - batik.jar - * - xalan-2.0.0.jar - * - avalon-framework-x.jar (where x is the version found the FOP lib dir) - */ -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) { - log = new ConsoleLogger(ConsoleLogger.LEVEL_WARN); - } - try { - String foParam = request.getParameter(FO_REQUEST_PARAM); - String xmlParam = request.getParameter(XML_REQUEST_PARAM); - String xslParam = request.getParameter(XSL_REQUEST_PARAM); - - if (foParam != null) { - File fofile = new File(foParam); - //log.warn("FO: "+fofile.getCanonicalPath()); - FileInputStream file = new FileInputStream(fofile); - 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"+ - "<body><h1>FopServlet Error</h1><h3>No 'fo' "+ - "request param given.</body></html>"); - } - } catch (ServletException ex) { - throw ex; - } - catch (Exception ex) { - throw new ServletException(ex); - } - } - - /** - * Renders an FO inputsource into a PDF file which is written - * directly to the response object's OutputStream - */ - public void renderFO(InputSource foFile, - HttpServletResponse response) throws ServletException { - try { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - - response.setContentType("application/pdf"); - - Driver driver = new Driver(foFile, out); - driver.enableLogging(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); - } - } - - /** - * Renders an XML file into a PDF file by applying a stylesheet - * that converts the XML to XSL:FO. The PDF is written - * directly to the response object's OutputStream - */ - public void renderXML(XSLTInputHandler input, - HttpServletResponse response) throws ServletException { - try { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - - response.setContentType("application/pdf"); - - Driver driver = new Driver(); - driver.enableLogging(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); - } - } - -} |