123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- /*
- * Copyright 1999-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
- /* $Id$ */
-
- package org.apache.fop.pdf;
-
- /**
- * class representing a Root (/Catalog) object
- */
- public class PDFRoot extends PDFObject {
-
- /**
- * Use no page mode setting, default
- */
- public static final int PAGEMODE_USENONE = 0;
-
- /**
- * Use outlines page mode to show bookmarks
- */
- public static final int PAGEMODE_USEOUTLINES = 1;
-
- /**
- * Use thumbs page mode to show thumbnail images
- */
- public static final int PAGEMODE_USETHUMBS = 2;
-
- /**
- * Full screen page mode
- */
- public static final int PAGEMODE_FULLSCREEN = 3;
-
- /**
- * the /Pages object that is root of the Pages hierarchy
- */
- protected PDFPages rootPages;
-
- /**
- * Root outline object
- */
- private PDFOutline outline;
-
- private int pageMode = PAGEMODE_USENONE;
-
- /**
- * create a Root (/Catalog) object. NOTE: The PDFRoot
- * object must be created before the PDF document is
- * generated, but it is not assigned an object ID until
- * it is about to be written (immediately before the xref
- * table as part of the trsailer). (mark-fop@inomial.com)
- *
- * @param objnum the object's number
- * @param pages the PDFPages object
- */
- public PDFRoot(int objnum, PDFPages pages) {
- super();
- setObjectNumber(objnum);
- setRootPages(pages);
- }
-
- /**
- * Set the page mode for the PDF document.
- *
- * @param mode the page mode
- */
- public void setPageMode(int mode) {
- pageMode = mode;
- }
-
- /**
- * add a /Page object to the root /Pages object
- *
- * @param page the /Page object to add
- */
- public void addPage(PDFPage page) {
- this.rootPages.addPage(page);
- }
-
- /**
- * set the root /Pages object
- *
- * @param pages the /Pages object to set as root
- */
- public void setRootPages(PDFPages pages) {
- this.rootPages = pages;
- }
-
- /**
- * Set the root outline for the PDF document.
- *
- * @param out the root PDF Outline
- */
- public void setRootOutline(PDFOutline out) {
- outline = out;
- }
-
- /**
- * Get the root PDF outline for the document.
- *
- * @return the root PDF Outline
- */
- public PDFOutline getRootOutline() {
- return outline;
- }
-
- /**
- * @see org.apache.fop.pdf.PDFObject#toPDFString()
- */
- public String toPDFString() {
- StringBuffer p = new StringBuffer(128);
- p.append(getObjectID());
- p.append("<< /Type /Catalog\n/Pages "
- + this.rootPages.referencePDF()
- + "\n");
- if (outline != null) {
- p.append(" /Outlines " + outline.referencePDF() + "\n");
- p.append(" /PageMode /UseOutlines\n");
- } else {
- switch (pageMode) {
- case PAGEMODE_USEOUTLINES:
- p.append(" /PageMode /UseOutlines\n");
- break;
- case PAGEMODE_USETHUMBS:
- p.append(" /PageMode /UseThumbs\n");
- break;
- case PAGEMODE_FULLSCREEN:
- p.append(" /PageMode /FullScreen\n");
- break;
- case PAGEMODE_USENONE:
- default:
- break;
- }
- }
- p.append(">>\nendobj\n");
- return p.toString();
- }
-
- }
|