Class DocumentStructureUtils

java.lang.Object
com.itextpdf.pdfoptimizer.util.DocumentStructureUtils

public final class DocumentStructureUtils extends Object
Util class for typical tasks across the whole structure of PdfDocument.
  • Method Details

    • search

      public static List search (com.itextpdf.kernel.pdf.PdfDocument document, IPdfObjectPredicate predicate)
      Collects all objects matches the provided predicate.
      Parameters:
      document - is a PdfDocument to perform a search
      predicate - is a IPdfObjectPredicate
      Returns:
      list of all indirect objects match the predicate
    • traverse

      public static void traverse (com.itextpdf.kernel.pdf.PdfDocument document, IAction action)
      Goes across all the structure of the document starting from indirect objects definition and then through its children recursively. Every met indirect object definition is processed by IAction.processIndirectObjectDefinition(PdfObject) and every met object including both types direct and indirect are is processed with IAction.processObject(PdfObject) call. Allows to replace objects during traversing (see IAction.processObject(PdfObject) for details).
      Parameters:
      document - is a PdfDocument to perform a traversing
      action - is an action to perform during traversing
    • getSimilarDictionaries

      public static Mapcom.itextpdf.kernel.pdf.PdfObject> getSimilarDictionaries (com.itextpdf.kernel.pdf.PdfDocument document, Collection objects, PdfDictionaryEqualityCalculator eqCalculator)
      Goes over provided list of objects and checks for similar ones. If there are similar objects, creates an indirect reference in provided document for the first encountered object and puts all copies to the resulting map as keys, and the first encountered one as value. The resulting map can be further used in ReplaceObjectsAction to replace all duplicates with a single indirect reference.
      Parameters:
      document - document containing provided list of pdf objects
      objects - collection of PdfDictionary elements
      eqCalculator - compare tool for PdfDictionary objects
      Returns:
      Map of PdfDictionary objects, where keys are found duplicates and values are first encountered object.