Class PdfResourceCounter


  • public class PdfResourceCounter
    extends Object
    This class can be used to count the number of bytes needed when copying pages from an existing PDF into a newly created PDF.
    • Field Detail

      • resources

        protected Map<Integer,​PdfObject> resources
        A map of the resources that are already taken into account
    • Constructor Detail

      • PdfResourceCounter

        public PdfResourceCounter​(PdfObject object)
        Creates a PdfResourceCounter instance to be used to count the resources needed for either a page (in this case pass a page dictionary) or the trailer (root and info dictionary) of a PDF file.
        Parameters:
        object - the object we want to examine
    • Method Detail

      • process

        protected final void process​(PdfObject object)
        Processes an object. If the object is indirect, it is added to the list of resources. If not, it is just processed.
        Parameters:
        object - the object to process
      • loopOver

        protected final void loopOver​(PdfObject object)
        In case an object is an array, a dictionary or a stream, we need to loop over the entries and process them one by one.
        Parameters:
        object - the object to examine
      • getResources

        public Map<Integer,​PdfObject> getResources()
        Returns a map with the resources.
        Returns:
        the resources
      • getLength

        public long getLength​(Map<Integer,​PdfObject> res)
                       throws IOException
        Returns the resources needed for the object that was used to create this PdfResourceCounter. If you pass a Map with resources that were already used by other objects, these objects will not be taken into account.
        Parameters:
        res - the resources that can be excluded when counting the bytes
        Returns:
        the number of bytes needed for an object
        Throws:
        IOException