gmazza      2003/07/10 16:49:55

  Modified:    src/java/org/apache/fop/apps PrintStarter.java
               src/java/org/apache/fop/servlet FopPrintServlet.java
  Added:       src/java/org/apache/fop/render/awt AWTPrintRenderer.java
  Log:
  Added new class render.awt.AWTPrintRenderer -- relocates PrintRenderer defined 
separately in PrintStarter and FopPrintServlet classes.  Note: this renderer still not 
functional   because parent class AWTRenderer is not finished in 1.0.
  
  Revision  Changes    Path
  1.4       +5 -107    xml-fop/src/java/org/apache/fop/apps/PrintStarter.java
  
  Index: PrintStarter.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/PrintStarter.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PrintStarter.java 17 Jun 2003 16:35:57 -0000      1.3
  +++ PrintStarter.java 10 Jul 2003 23:49:55 -0000      1.4
  @@ -49,7 +49,6 @@
    * Software Foundation, please see <http://www.apache.org/>.
    */ 
   package org.apache.fop.apps;
  -
   /*
    * originally contributed by
    * Stanislav Gorkhover: [EMAIL PROTECTED]
  @@ -60,17 +59,9 @@
    * (apparently) redundant copies code, generally cleaned up, and
    * added interfaces to the new Render API.
    */
  -
  -
   import org.xml.sax.XMLReader;
  -
  -import java.awt.print.PrinterException;
   import java.awt.print.PrinterJob;
  -import java.io.OutputStream;
  -import java.io.IOException;
  -import java.util.Vector;
  -
  -import org.apache.fop.render.awt.AWTRenderer;
  +import org.apache.fop.render.awt.AWTPrintRenderer;
   
   /**
    * This class prints a XSL-FO dokument without interaction.
  @@ -111,7 +102,7 @@
               }
           }
   
  -        PrintRenderer renderer = new PrintRenderer(pj);
  +        AWTPrintRenderer renderer = new AWTPrintRenderer(pj);
           int copies = getIntProperty("copies", 1);
           pj.setCopies(copies);
   
  @@ -129,7 +120,8 @@
   
           System.exit(0);
       }
  -    int getIntProperty(String name, int def) {
  +     
  +    private int getIntProperty(String name, int def) {
           String propValue = System.getProperty(name);
           if (propValue != null) {
               try {
  @@ -141,99 +133,5 @@
               return def;
           }
       }
  -
  -    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 = getIntProperty("start", 1) - 1;
  -            endNumber = getIntProperty("end", -1);
  -
  -            printerJob.setPageable(this);
  -
  -            mode = EVEN_AND_ALL;
  -            String str = System.getProperty("even");
  -            if (str != null) {
  -                mode = Boolean.valueOf(str).booleanValue() ? EVEN : ODD;
  -            }
  -
  -        }
  -
  -        public void stopRenderer(OutputStream outputStream)
  -        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(Page page) {
  -            pageWidth = (int)((float)page.getWidth() / 1000f);
  -            pageHeight = (int)((float)page.getHeight() / 1000f);
  -        }*/
  -
  -        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;
  -        }
  -
  -        /* TODO: I'm totally not sure that this is necessary -Mark
  -        void setCopies(int val) {
  -            copies = val;
  -            Vector copie = tree.getPages();
  -            for (int i = 1; i < copies; i++) {
  -                tree.getPages().addAll(copie);
  -            }
  -
  -    }
  -        */
  -    }    // class PrintRenderer
  -}        // class PrintCommandLine
  +} // class PrintStarter
   
  
  
  
  1.1                  xml-fop/src/java/org/apache/fop/render/awt/AWTPrintRenderer.java
  
  Index: AWTPrintRenderer.java
  ===================================================================
  /*
   * $Id: AWTPrintRenderer.java,v 1.1 2003/07/10 23:49:55 gmazza Exp $
   * ============================================================================
   *                    The Apache Software License, Version 1.1
   * ============================================================================
   * 
   * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   * 
   * 1. Redistributions of source code must retain the above copyright notice,
   *    this list of conditions and the following disclaimer.
   * 
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   * 
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include the following acknowledgment: "This product includes software
   *    developed by the Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself, if
   *    and wherever such third-party acknowledgments normally appear.
   * 
   * 4. The names "FOP" and "Apache Software Foundation" must not be used to
   *    endorse or promote products derived from this software without prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   * 
   * 5. Products derived from this software may not be called "Apache", nor may
   *    "Apache" appear in their name, without prior written permission of the
   *    Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ============================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation and was originally created by
   * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache
   * Software Foundation, please see <http://www.apache.org/>.
   */ 
  package org.apache.fop.render.awt;
  
  import java.awt.print.PrinterException;
  import java.awt.print.PrinterJob;
  import java.io.IOException;
  import java.util.Vector;
  
  public class AWTPrintRenderer 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;
  
      public AWTPrintRenderer(PrinterJob printerJob) {
          super(null);
          this.printerJob = printerJob;
          startNumber = getIntProperty("start", 1) - 1;
          endNumber = getIntProperty("end", -1);
          printerJob.setPageable(this);
          mode = EVEN_AND_ALL;
          String str = System.getProperty("even");
          if (str != null) {
              mode = Boolean.valueOf(str).booleanValue() ? EVEN : ODD;
          }
      }
  
      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());
          }
      }
  
      private int getIntProperty(String name, int def) {
          String propValue = System.getProperty(name);
          if (propValue != null) {
              try {
                  return Integer.parseInt(propValue);
              } catch (Exception e) {
                  return def;
              }
          } else {
              return def;
          }
      }
  
      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;
      }
  
      /* TODO: I'm not totally sure that this is necessary -Mark
        void setCopies(int val) {
                copies = val;
                Vector copie = tree.getPages();
                for (int i = 1; i < copies; i++) {
                        tree.getPages().addAll(copie);
                }
      } */
  } // class AWTPrintRenderer
  
  
  
  
  1.6       +3 -89     xml-fop/src/java/org/apache/fop/servlet/FopPrintServlet.java
  
  Index: FopPrintServlet.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/servlet/FopPrintServlet.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FopPrintServlet.java      20 Jun 2003 10:15:41 -0000      1.5
  +++ FopPrintServlet.java      10 Jul 2003 23:49:55 -0000      1.6
  @@ -57,7 +57,6 @@
   import java.util.List;
   
   import java.awt.print.PrinterJob;
  -import java.awt.print.PrinterException;
   
   import javax.servlet.ServletException;
   import javax.servlet.http.HttpServlet;
  @@ -76,7 +75,7 @@
   import org.apache.fop.apps.FOPException;
   import org.apache.fop.area.PageViewport;
   import org.apache.fop.apps.XSLTInputHandler;
  -import org.apache.fop.render.awt.AWTRenderer;
  +import org.apache.fop.render.awt.AWTPrintRenderer;
   
   /**
    * Example servlet to generate a fop printout from a servlet.
  @@ -173,7 +172,7 @@
           try {
               Driver driver = new Driver(foFile, null);
               PrinterJob pj = PrinterJob.getPrinterJob();
  -            PrintRenderer renderer = new PrintRenderer(pj);
  +            AWTPrintRenderer renderer = new AWTPrintRenderer(pj);
   
               driver.enableLogging(log);
               driver.setRenderer(renderer);
  @@ -196,7 +195,7 @@
           try {
               Driver driver = new Driver();
               PrinterJob pj = PrinterJob.getPrinterJob();
  -            PrintRenderer renderer = new PrintRenderer(pj);
  +            AWTPrintRenderer renderer = new AWTPrintRenderer(pj);
   
               pj.setCopies(1);
   
  @@ -228,90 +227,5 @@
               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) {
  -                mode = Boolean.valueOf(str).booleanValue() ? EVEN : ODD;
  -            }
  -        }
  -
  -        public void stopRenderer() throws IOException {
  -            super.stopRenderer();
  -
  -            if (endNumber == -1) {
  -                endNumber = getPageCount();
  -            }
  -
  -            List 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 List getInvalidPageNumbers() {
  -
  -            List list = new java.util.ArrayList();
  -            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) {
  -                    list.add(Integer.toString(i));
  -                }
  -            }
  -
  -            return list;
  -        }
  -    } // class PrintRenderer
  -
   }
   
  
  
  

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

Reply via email to