Class PdfResourceCounter

java.lang.Object
com.itextpdf.kernel.utils.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 Summary

    Fields
    Modifier and Type
    Field
    Description
    A map of the resources that are already taken into account
  • Constructor Summary

    Constructors
    Constructor
    Description
    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.
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    Returns the resources needed for the object that was used to create this PdfResourceCounter.
    Returns a map with the resources.
    protected final void
    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.
    protected final void
    Processes an object.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • resources

      private Map<Integer,PdfObject> resources
      A map of the resources that are already taken into account
  • Constructor Details

    • PdfResourceCounter

      public PdfResourceCounter(PdfObject obj)
      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:
      obj - the object we want to examine
  • Method Details

    • process

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

      protected final void loopOver(PdfObject obj)
      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:
      obj - 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)
      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.