Class PDPageTree

  • All Implemented Interfaces:
    java.lang.Iterable<PDPage>, COSObjectable

    public class PDPageTree
    extends java.lang.Object
    implements COSObjectable, java.lang.Iterable<PDPage>
    The page tree, which defines the ordering of pages in the document in an efficient manner.
    Author:
    John Hewson
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(PDPage page)
      Adds the given page to this page tree.
      PDPage get​(int index)
      Returns the page at the given index.
      COSDictionary getCOSObject()
      Convert this standard java object to a COS object.
      int getCount()
      Returns the number of leaf nodes (page objects) that are descendants of this root within the page tree.
      static COSBase getInheritableAttribute​(COSDictionary node, COSName key)
      Returns the given attribute, inheriting from parent tree nodes if necessary.
      int indexOf​(PDPage page)
      Returns the index of the given page, or -1 if it does not exist.
      void insertAfter​(PDPage newPage, PDPage prevPage)
      Insert a page after another page within a page tree.
      void insertBefore​(PDPage newPage, PDPage nextPage)
      Insert a page before another page within a page tree.
      java.util.Iterator<PDPage> iterator()
      Returns an iterator which walks all pages in the tree, in order.
      void remove​(int index)
      Removes the page with the given index from the page tree.
      void remove​(PDPage page)
      Removes the given page from the page tree.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Constructor Detail

      • PDPageTree

        public PDPageTree()
        Constructor for embedding.
      • PDPageTree

        public PDPageTree​(COSDictionary root)
        Constructor for reading.
        Parameters:
        root - A page tree root.
    • Method Detail

      • getInheritableAttribute

        public static COSBase getInheritableAttribute​(COSDictionary node,
                                                      COSName key)
        Returns the given attribute, inheriting from parent tree nodes if necessary.
        Parameters:
        node - page object
        key - the key to look up
        Returns:
        COS value for the given key
      • iterator

        public java.util.Iterator<PDPage> iterator()
        Returns an iterator which walks all pages in the tree, in order.
        Specified by:
        iterator in interface java.lang.Iterable<PDPage>
      • get

        public PDPage get​(int index)
        Returns the page at the given index.
        Parameters:
        index - zero-based index
        Returns:
        the page at the given index.
      • indexOf

        public int indexOf​(PDPage page)
        Returns the index of the given page, or -1 if it does not exist.
        Parameters:
        page - The page to search for.
        Returns:
        the zero-based index of the given page, or -1 if the page is not found.
      • getCount

        public int getCount()
        Returns the number of leaf nodes (page objects) that are descendants of this root within the page tree.
        Returns:
        the number of leaf nodes.
      • getCOSObject

        public COSDictionary getCOSObject()
        Description copied from interface: COSObjectable
        Convert this standard java object to a COS object.
        Specified by:
        getCOSObject in interface COSObjectable
        Returns:
        The cos object that matches this Java object.
      • remove

        public void remove​(int index)
        Removes the page with the given index from the page tree.
        Parameters:
        index - zero-based page index
      • remove

        public void remove​(PDPage page)
        Removes the given page from the page tree.
        Parameters:
        page - The page to remove.
      • add

        public void add​(PDPage page)
        Adds the given page to this page tree.
        Parameters:
        page - The page to add.
      • insertBefore

        public void insertBefore​(PDPage newPage,
                                 PDPage nextPage)
        Insert a page before another page within a page tree.
        Parameters:
        newPage - the page to be inserted.
        nextPage - the page that is to be after the new page.
        Throws:
        java.lang.IllegalArgumentException - if one attempts to insert a page that isn't part of a page tree.
      • insertAfter

        public void insertAfter​(PDPage newPage,
                                PDPage prevPage)
        Insert a page after another page within a page tree.
        Parameters:
        newPage - the page to be inserted.
        prevPage - the page that is to be before the new page.
        Throws:
        java.lang.IllegalArgumentException - if one attempts to insert a page that isn't part of a page tree.