keiron      01/11/12 05:10:12

  Modified:    src/org/apache/fop/area AreaTree.java PageViewport.java
               src/org/apache/fop/pdf PDFDocument.java PDFInfo.java
                        PDFPage.java PDFXObject.java
               src/org/apache/fop/render AbstractRenderer.java
                        Renderer.java
               src/org/apache/fop/render/pdf PDFRenderer.java
               src/org/apache/fop/svg PDFDocumentGraphics2D.java
  Log:
  some changes for out of order rendering and rendering to a renderer
  
  Revision  Changes    Path
  1.3       +31 -17    xml-fop/src/org/apache/fop/area/AreaTree.java
  
  Index: AreaTree.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/area/AreaTree.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AreaTree.java     2001/10/26 09:26:59     1.2
  +++ AreaTree.java     2001/11/12 13:10:11     1.3
  @@ -1,5 +1,5 @@
   /*
  - * $Id: AreaTree.java,v 1.2 2001/10/26 09:26:59 keiron Exp $
  + * $Id: AreaTree.java,v 1.3 2001/11/12 13:10:11 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.
  @@ -7,8 +7,9 @@
   
   package org.apache.fop.area;
   
  -import java.util.ArrayList;
  +import org.apache.fop.render.Renderer;
   
  +import java.util.ArrayList;
   
   /**
    * Area tree for formatting objects.
  @@ -31,9 +32,9 @@
       // allows for different models to deal with adding/rendering
       // in different situations
       AreaTreeModel model;
  -
  -    public void createRenderPageModel(PageRenderListener listener) {
   
  +    public RenderPagesModel createRenderPagesModel(Renderer rend) {
  +        return new RenderPagesModel(rend);
       }
   
       public static StorePagesModel createStorePagesModel() {
  @@ -44,7 +45,7 @@
           model = m;
       }
   
  -    public void startPageSequence(Area title) {
  +    public void startPageSequence(Title title) {
           model.startPageSequence(title);
       }
   
  @@ -54,7 +55,7 @@
   
       // this is the model for the area tree object
       public static abstract class AreaTreeModel {
  -        public abstract void startPageSequence(Area title);
  +        public abstract void startPageSequence(Title title);
           public abstract void addPage(PageViewport page);
       }
   
  @@ -67,7 +68,7 @@
   
           public StorePagesModel() {}
   
  -        public void startPageSequence(Area title) {
  +        public void startPageSequence(Title title) {
               titles.add(title);
               if (pageSequence == null) {
                   pageSequence = new ArrayList();
  @@ -99,18 +100,31 @@
           }
       }
   
  -    // this queues pages and will call the render listener
  -    // when the page is ready to be rendered
  -    // if the render supports out of order rendering
  -    // then a ready page is rendered immediately
  +    // this uses the store pages model to store the pages
  +    // each page is either rendered if ready or prepared
  +    // for later rendering
       public static class RenderPagesModel extends StorePagesModel {
  -        public void startPageSequence(Area title) {}
  -        public void addPage(PageViewport page) {}
  -    }
  +        Renderer renderer;
  +        ArrayList prepared = new ArrayList();
  +
  +        public RenderPagesModel(Renderer rend) {
  +            renderer = rend;
  +        }
  +
  +        public void startPageSequence(Title title) {
  +            super.startPageSequence(title);
  +            renderer.startPageSequence(title);
  +        }
   
  -    public static abstract class PageRenderListener {
  -        public abstract void renderPage(RenderPagesModel model,
  -                                        int pageseq, int count);
  +        public void addPage(PageViewport page) {
  +            super.addPage(page);
  +            // if page finished
  +            //renderer.renderPage(page);
  +            page.clear();
  +            // else prepare
  +            //renderer.preparePage(page);
  +            prepared.add(page);
  +        }
       }
   
   }
  
  
  
  1.4       +10 -1     xml-fop/src/org/apache/fop/area/PageViewport.java
  
  Index: PageViewport.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/area/PageViewport.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PageViewport.java 2001/11/09 11:32:36     1.3
  +++ PageViewport.java 2001/11/12 13:10:11     1.4
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PageViewport.java,v 1.3 2001/11/09 11:32:36 keiron Exp $
  + * $Id: PageViewport.java,v 1.4 2001/11/12 13:10:11 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.
  @@ -53,5 +53,14 @@
   
       public void loadPage(ObjectInputStream in) throws Exception {
           page = (Page) in.readObject();
  +    }
  +
  +    /**
  +     * Clear the page contents to save memory.
  +     * THis objects is kept for the life of the area tree since
  +     * it holds id information and is used as a key.
  +     */
  +    public void clear() {
  +        page = null;
       }
   }
  
  
  
  1.33      +10 -33    xml-fop/src/org/apache/fop/pdf/PDFDocument.java
  
  Index: PDFDocument.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/pdf/PDFDocument.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- PDFDocument.java  2001/11/02 11:06:07     1.32
  +++ PDFDocument.java  2001/11/12 13:10:11     1.33
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PDFDocument.java,v 1.32 2001/11/02 11:06:07 keiron Exp $
  + * $Id: PDFDocument.java,v 1.33 2001/11/12 13:10:11 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.
  @@ -21,15 +21,13 @@
   import org.apache.fop.render.pdf.fonts.LazyFont;
   
   import org.apache.fop.datatypes.IDReferences;
  -import org.apache.fop.layout.Page;
   import org.apache.fop.layout.FontMetric;
   import org.apache.fop.layout.FontDescriptor;
   // Java
   import java.io.IOException;
   import java.io.OutputStream;
   import java.util.ArrayList;
  -import java.util.Hashtable;
  -import java.util.Enumeration;
  +import java.util.HashMap;
   import java.awt.Rectangle;
   
   /**
  @@ -147,7 +145,7 @@
        * the XObjects Map.
        * Should be modified (works only for image subtype)
        */
  -    protected Hashtable xObjectsMap = new Hashtable();
  +    protected HashMap xObjectsMap = new HashMap();
   
       /**
        * the objects themselves
  @@ -936,46 +934,25 @@
        *
        * @return the created /Page object
        */
  -    public PDFPage makePage(PDFResources resources, PDFStream contents,
  +    public PDFPage makePage(PDFResources resources,
                               int pagewidth, int pageheight) {
   
           /*
            * create a PDFPage with the next object number, the given
            * resources, contents and dimensions
            */
  -        PDFPage page = new PDFPage(++this.objectcount, resources, contents,
  +        PDFPage page = new PDFPage(++this.objectcount, resources,
                                      pagewidth, pageheight);
   
  -        if(pendingLinks != null) {
  -            for(int count = 0; count < pendingLinks.size(); count++) {
  -                PendingLink pl = (PendingLink)pendingLinks.get(count);
  -                PDFGoTo gt = new PDFGoTo(++this.objectcount,
  -                                         page.referencePDF());
  -                gt.setDestination(pl.dest);
  -                addTrailerObject(gt);
  -                PDFInternalLink internalLink =
  -                                 new PDFInternalLink(gt.referencePDF());
  -                pl.link.setAction(internalLink);
  -            }
  -            pendingLinks = null;
  -        }
  -/*
  -        if (currentPage != null) {
  -            Enumeration enum = currentPage.getIDList().elements();
  -            while (enum.hasMoreElements()) {
  -                String id = enum.nextElement().toString();
  -                idReferences.setInternalGoToPageReference(id,
  -                        page.referencePDF());
  -            }
  -        }
  -*/
           /* add it to the list of objects */
           this.objects.add(page);
   
  -        /* add the page to the Root */
  -        this.root.addPage(page);
  -
           return page;
  +    }
  +
  +    public void addPage(PDFPage page) {
  +        /* add it to the list of objects */
  +        this.objects.add(page);
       }
   
       /**
  
  
  
  1.8       +51 -7     xml-fop/src/org/apache/fop/pdf/PDFInfo.java
  
  Index: PDFInfo.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/pdf/PDFInfo.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- PDFInfo.java      2001/07/30 20:29:30     1.7
  +++ PDFInfo.java      2001/11/12 13:10:11     1.8
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PDFInfo.java,v 1.7 2001/07/30 20:29:30 tore Exp $
  + * $Id: PDFInfo.java,v 1.8 2001/11/12 13:10:11 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.
  @@ -7,9 +7,8 @@
   
   package org.apache.fop.pdf;
   
  -// Java
  -import java.io.IOException;
  -import java.io.PrintWriter;
  +import java.util.Date;
  +import java.text.SimpleDateFormat;
   
   /**
    * class representing an /Info object
  @@ -21,6 +20,15 @@
        */
       protected String producer;
   
  +    protected String title = null;
  +    protected String author = null;
  +    protected String subject = null;
  +    protected String keywords = null;
  +
  +    // the name of the application that created the
  +    // original document before converting to PDF
  +    protected String creator;
  +
       /**
        * create an Info object
        *
  @@ -39,6 +47,22 @@
           this.producer = producer;
       }
   
  +    public void setTitle(String t) {
  +        this.title = t;
  +    }
  +
  +    public void setAuthor(String a) {
  +        this.author = a;
  +    }
  +
  +    public void setSubject(String s) {
  +        this.subject = s;
  +    }
  +
  +    public void setKeywords(String k) {
  +        this.keywords = k;
  +    }
  +
       /**
        * produce the PDF representation of the object
        *
  @@ -46,9 +70,29 @@
        */
       public byte[] toPDF() {
           String p = this.number + " " + this.generation
  -                   + " obj\n<< /Type /Info\n/Producer (" + this.producer
  -                   + ") >>\nendobj\n";
  +                   + " obj\n<< /Type /Info\n";
  +        if(title != null) {
  +            p += "/Title (" + this.title + ")\n";
  +        }
  +        if(author != null) {
  +            p += "/Author (" + this.author + ")\n";
  +        }
  +        if(subject != null) {
  +            p += "/Subject (" + this.subject + ")\n";
  +        }
  +        if(keywords != null) {
  +            p += "/Keywords (" + this.keywords + ")\n";
  +        }
  +
  +        p += "/Producer (" + this.producer + ")\n";
  +
  +        // creation date in form (D:YYYYMMDDHHmmSSOHH'mm')
  +        Date date = new Date();
  +        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
  +        String str = sdf.format(date) + "+00'00'";
  +        p += "/CreationDate (D:" + str + ")";
  +        p += " >>\nendobj\n";
           return p.getBytes();
       }
  -
   }
  +
  
  
  
  1.13      +32 -1     xml-fop/src/org/apache/fop/pdf/PDFPage.java
  
  Index: PDFPage.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/pdf/PDFPage.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- PDFPage.java      2001/08/01 22:12:52     1.12
  +++ PDFPage.java      2001/11/12 13:10:11     1.13
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PDFPage.java,v 1.12 2001/08/01 22:12:52 gears Exp $
  + * $Id: PDFPage.java,v 1.13 2001/11/12 13:10:11 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.
  @@ -75,6 +75,37 @@
           this.pageheight = pageheight;
   
           this.annotList = null;
  +    }
  +
  +    /**
  +     * create a /Page object
  +     *
  +     * @param number the object's number
  +     * @param resources the /Resources object
  +     * @param pagewidth the page's width in points
  +     * @param pageheight the page's height in points
  +     */
  +    public PDFPage(int number, PDFResources resources,
  +                   int pagewidth, int pageheight) {
  +
  +        /* generic creation of object */
  +        super(number);
  +
  +        /* set fields using parameters */
  +        this.resources = resources;
  +        this.pagewidth = pagewidth;
  +        this.pageheight = pageheight;
  +
  +        this.annotList = null;
  +    }
  +
  +    /**
  +     * set this page contents
  +     * 
  +     * @param contents the contents of the page
  +     */
  +    public void setContents(PDFStream contents) {
  +        this.contents = contents;
       }
   
       /**
  
  
  
  1.15      +1 -19     xml-fop/src/org/apache/fop/pdf/PDFXObject.java
  
  Index: PDFXObject.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/pdf/PDFXObject.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- PDFXObject.java   2001/09/18 08:17:08     1.14
  +++ PDFXObject.java   2001/11/12 13:10:11     1.15
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PDFXObject.java,v 1.14 2001/09/18 08:17:08 keiron Exp $
  + * $Id: PDFXObject.java,v 1.15 2001/11/12 13:10:11 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.
  @@ -119,24 +119,6 @@
       }
   
       byte[] toPDF() {
  -        /*
  -         * Not used any more
  -         * String p = this.number + " " + this.generation + " obj\n";
  -         * p = p + "<</Type /XObject\n";
  -         * p = p + "/Subtype /Image\n";
  -         * p = p + "/Name /Im"+Xnum+"\n";
  -         * p = p + "/Width "+fopimage.getpixelwidth()+"\n";
  -         * p = p + "/Height "+fopimage.getpixelheight()+"\n";
  -         * p = p + "/BitsPerComponent 8\n";
  -         * if (fopimage.getcolor())
  -         * p = p + "/ColorSpace /DeviceRGB\n";
  -         * else
  -         * p = p + "/ColorSpace /DeviceGray\n";
  -         * p = p + "/Filter /ASCIIHexDecode\n";
  -         * p = p + "/Length ";
  -         * return p;
  -         */
           return null;
       }
  -
   }
  
  
  
  1.9       +22 -1     xml-fop/src/org/apache/fop/render/AbstractRenderer.java
  
  Index: AbstractRenderer.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/AbstractRenderer.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- AbstractRenderer.java     2001/11/09 22:16:26     1.8
  +++ AbstractRenderer.java     2001/11/12 13:10:11     1.9
  @@ -1,5 +1,5 @@
   /*
  - * $Id: AbstractRenderer.java,v 1.8 2001/11/09 22:16:26 klease Exp $
  + * $Id: AbstractRenderer.java,v 1.9 2001/11/12 13:10:11 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.
  @@ -56,6 +56,27 @@
   
       public void setOptions(HashMap opt) {
           options = opt;
  +    }
  +
  +    /**
  +     * Check if this renderer supports out of order rendering.
  +     * If this renderer supports out of order rendering then it
  +     * means that the pages that are not ready will be prepared
  +     * and a future page will be rendered.
  +     */
  +    public boolean supportsOutOfOrder() {
  +        return false;
  +    }
  +
  +    /**
  +     * Prepare a page for rendering.
  +     * This is called if the renderer supports out of order rendering.
  +     * The renderer should prepare the page so that a page further on
  +     * in the set of pages can be rendered. The body of the page should
  +     * not be rendered. The page will be rendered at a later time
  +     * by the call to render page.
  +     */
  +    public void preparePage(PageViewport page) {
       }
   
       /**
  
  
  
  1.22      +5 -1      xml-fop/src/org/apache/fop/render/Renderer.java
  
  Index: Renderer.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/Renderer.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- Renderer.java     2001/10/26 09:27:00     1.21
  +++ Renderer.java     2001/11/12 13:10:11     1.22
  @@ -1,5 +1,5 @@
   /*
  - * $Id: Renderer.java,v 1.21 2001/10/26 09:27:00 keiron Exp $
  + * $Id: Renderer.java,v 1.22 2001/11/12 13:10:11 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.
  @@ -60,6 +60,10 @@
        * set the producer of the rendering
        */
       public void setProducer(String producer);
  +
  +    public boolean supportsOutOfOrder();
  +
  +    public void preparePage(PageViewport page);
   
       public void startPageSequence(Title seqTitle);
   
  
  
  
  1.94      +53 -15    xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java
  
  Index: PDFRenderer.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/pdf/PDFRenderer.java,v
  retrieving revision 1.93
  retrieving revision 1.94
  diff -u -r1.93 -r1.94
  --- PDFRenderer.java  2001/10/26 09:27:00     1.93
  +++ PDFRenderer.java  2001/11/12 13:10:12     1.94
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PDFRenderer.java,v 1.93 2001/10/26 09:27:00 keiron Exp $
  + * $Id: PDFRenderer.java,v 1.94 2001/11/12 13:10:12 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.
  @@ -28,15 +28,15 @@
   // Java
   import java.io.IOException;
   import java.io.OutputStream;
  -
   import java.awt.geom.Rectangle2D;
  +import java.util.HashMap;
   
   /*
   TODO:
   
   viewport clipping
   word rendering and optimistion
  -pdf state optimistation
  +pdf state optimisation
   line and border
   leader
   background pattern
  @@ -58,6 +58,16 @@
        */
       protected PDFDocument pdfDoc;
   
  +    // map of pages using the PageViewport as the key
  +    // this is used for prepared pages that cannot be immediately
  +    // rendered
  +    protected HashMap pages = null;
  +
  +    // page references are stored using the PageViewport as the key
  +    // when a reference is made the PageViewport is used
  +    // for pdf this means we need the pdf page reference
  +    protected HashMap pageReferences = new HashMap();
  +
       protected String producer;
   
       protected OutputStream ostream;
  @@ -141,16 +151,50 @@
           ostream = null;
       }
   
  +    public boolean supportsOutOfOrder() {
  +        return true;
  +    }
  +
  +    /**
  +     * The pdf page is prepared by making the page.
  +     * The page is made in the pdf document without any contents
  +     * and then stored to add the contents later.
  +     * The page objects is stored using the area tree PageViewport
  +     * as a key.
  +     */
  +    public void preparePage(PageViewport page) {
  +        this.pdfResources = this.pdfDoc.getResources();
  +    
  +        Rectangle2D bounds = page.getViewArea();
  +        double w = bounds.getWidth();
  +        double h = bounds.getHeight();
  +        currentPage = this.pdfDoc.makePage(this.pdfResources,
  +                                           (int) Math.round(w / 1000), (int) 
Math.round(h / 1000));
  +        if(pages == null) {
  +            pages = new HashMap();
  +        }
  +        pages.put(page, currentPage);
  +        pageReferences.put(page, currentPage.referencePDF());
  +    }
  +
       /**
        * This method creates a pdf stream for the current page
  -     * uses it as the contents of a new page. The page is wriiten
  +     * uses it as the contents of a new page. The page is written
        * immediately to the output stream.
        */
       public void renderPage(PageViewport page) throws IOException,
       FOPException {
  -
  -        this.pdfResources = this.pdfDoc.getResources();
  -
  +        if(pages != null && (currentPage = (PDFPage)pages.get(page)) != null) {
  +            pages.remove(page);
  +        } else {
  +            this.pdfResources = this.pdfDoc.getResources();
  +            Rectangle2D bounds = page.getViewArea();
  +            double w = bounds.getWidth();
  +            double h = bounds.getHeight();
  +            currentPage = this.pdfDoc.makePage(this.pdfResources, 
  +                                           (int) Math.round(w / 1000), (int) 
Math.round(h / 1000));
  +            pageReferences.put(page, currentPage.referencePDF());
  +        }
           currentStream = this.pdfDoc.makeStream();
           currentStream.add("BT\n");
   
  @@ -158,16 +202,10 @@
           renderPageAreas(p);
   
           currentStream.add("ET\n");
  -
  -        Rectangle2D bounds = page.getViewArea();
  -        double w = bounds.getWidth();
  -        double h = bounds.getHeight();
  -        currentPage = this.pdfDoc.makePage(this.pdfResources, currentStream,
  -                                           (int) Math.round(w / 1000), (int) 
Math.round(h / 1000));
   
  +        currentPage.setContents(currentStream);
  +        this.pdfDoc.addPage(currentPage);
           this.pdfDoc.output(ostream);
  -
       }
  -
   
   }
  
  
  
  1.14      +9 -4      xml-fop/src/org/apache/fop/svg/PDFDocumentGraphics2D.java
  
  Index: PDFDocumentGraphics2D.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/svg/PDFDocumentGraphics2D.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- PDFDocumentGraphics2D.java        2001/11/09 11:32:42     1.13
  +++ PDFDocumentGraphics2D.java        2001/11/12 13:10:12     1.14
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PDFDocumentGraphics2D.java,v 1.13 2001/11/09 11:32:42 keiron Exp $
  + * $Id: PDFDocumentGraphics2D.java,v 1.14 2001/11/12 13:10:12 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.
  @@ -31,12 +31,13 @@
    * <tt>PDFGraphics2D</tt>.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Keiron Liddle</a>
  - * @version $Id: PDFDocumentGraphics2D.java,v 1.13 2001/11/09 11:32:42 keiron Exp $
  + * @version $Id: PDFDocumentGraphics2D.java,v 1.14 2001/11/12 13:10:12 keiron Exp $
    * @see org.apache.fop.svg.PDFGraphics2D
    */
   public class PDFDocumentGraphics2D extends PDFGraphics2D {
       OutputStream stream;
   
  +    PDFPage currentPage;
       PDFStream pdfStream;
       int width;
       int height;
  @@ -77,6 +78,10 @@
           currentFontSize = 0;
           currentYPosition = 0;
           currentXPosition = 0;
  +
  +        PDFResources pdfResources = this.pdfDoc.getResources();
  +        currentPage = this.pdfDoc.makePage(pdfResources,
  +                                                   width, height);
       }
   
       void setupDocument(OutputStream stream, int width, int height) {
  @@ -149,8 +154,8 @@
       public void finish() throws IOException {
           pdfStream.add(getString());
           PDFResources pdfResources = this.pdfDoc.getResources();
  -        PDFPage currentPage = this.pdfDoc.makePage(pdfResources, pdfStream,
  -                                                   width, height);
  +        currentPage.setContents(pdfStream);
  +        this.pdfDoc.addPage(currentPage);
           if(currentAnnotList != null) {
               currentPage.setAnnotList(currentAnnotList);
           }
  
  
  

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

Reply via email to