/* * $Id: PDFPageList.java,v 1.2 2007/08/26 18:56:35 gil1 Exp $ * * $Date: 2007/08/26 18:56:35 $ * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ package gnu.jpdf; import java.io.*; import java.util.*; /** * This object contains the document's pages. * * @author Peter T. Mount * @author Eric Z. Beard, ericzbeard@hotmail.com * @version $Revision: 1.2 $, $Date: 2007/08/26 18:56:35 $ */ public class PDFPageList extends PDFObject { /** * This holds the pages */ private Vector<PDFPage> pages; /** * This constructs a PDF Pages object. */ public PDFPageList() { super("/Pages"); pages = new Vector<PDFPage>(); } /** * This adds a page to the document. * * @param page PDFPage to add */ public void add(PDFPage page) { pages.addElement(page); // Tell the page of ourselves page.pdfPageList = this; } /** * This returns a specific page. Used by the PDF class. * @param page page number to return * @return PDFPage at that position */ public PDFPage getPage(int page) { return (PDFPage)(pages.elementAt(page)); } /** * @param os OutputStream to send the object to * @exception IOException on error */ public void write(OutputStream os) throws IOException { // Write the object header writeStart(os); // now the objects body // the Kids array os.write("/Kids ".getBytes()); os.write(PDFObject.toArray(pages).getBytes()); os.write("\n".getBytes()); // the number of Kids in this document os.write("/Count ".getBytes()); os.write(Integer.toString(pages.size()).getBytes()); os.write("\n".getBytes()); // finish off with its footer writeEnd(os); } } // end class PDFPageList