Class OutlineUtils

java.lang.Object
org.sejda.impl.sambox.component.OutlineUtils

public final class OutlineUtils extends Object
Utility methods related to outline handling in SAMBox
Author:
Andrea Vacondio
  • Method Summary

    Modifier and Type
    Method
    Description
    static org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageDestination
    clonePageDestination(org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageDestination dest, org.sejda.sambox.pdmodel.PDPage destPage)
    Creates a clone of the given page destination pointing to the given new page.
    static void
    copyOutlineDictionary(org.sejda.sambox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem from, org.sejda.sambox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem to)
    Copies the dictionary from the given PDOutlineItem to the destination one
    getFlatOutline(org.sejda.sambox.pdmodel.PDDocument document)
     
    static Set<Integer>
    getOutlineLevelsWithPageDestination(org.sejda.sambox.pdmodel.PDDocument document)
     
    static org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageXYZDestination
    pageDestinationFor(org.sejda.sambox.pdmodel.PDPage page)
     
    static Map<org.sejda.sambox.pdmodel.PDPage,Set<org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageDestination>>
    pageGroupedOutlinePageDestinations(org.sejda.sambox.pdmodel.PDDocument document)
     
    static void
    printOutline(org.sejda.sambox.pdmodel.PDDocument document)
     
    static org.sejda.sambox.pdmodel.PDPage
    resolvePageDestination(org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageDestination destination, org.sejda.sambox.pdmodel.PDDocument document)
    Tries to resolve the page pointed by a page destination.
    static Optional<org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageDestination>
    toPageDestination(org.sejda.sambox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem current, org.sejda.sambox.pdmodel.PDDocumentCatalog catalog)
     

    Methods inherited from class java.lang.Object

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

    • getOutlineLevelsWithPageDestination

      public static Set<Integer> getOutlineLevelsWithPageDestination(org.sejda.sambox.pdmodel.PDDocument document)
      Parameters:
      document -
      Returns:
      a set containing the the outline levels having at least one page destination
    • toPageDestination

      public static Optional<org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageDestination> toPageDestination(org.sejda.sambox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem current, org.sejda.sambox.pdmodel.PDDocumentCatalog catalog)
      Parameters:
      current - the outline item
      catalog - the catalog to look for in case of PDNamedDestination
      Returns:
      the PDPageDestination for the given PDOutlineItem or an empty Optional if the destination is not a page. In case the outline item has a named destination, it is resolved against the given names tree.
    • pageDestinationFor

      public static org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageXYZDestination pageDestinationFor(org.sejda.sambox.pdmodel.PDPage page)
      Parameters:
      page -
      Returns:
      a page destination pointing to the top left corner and keeping rotation into account
    • clonePageDestination

      public static org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageDestination clonePageDestination(org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageDestination dest, org.sejda.sambox.pdmodel.PDPage destPage)
      Creates a clone of the given page destination pointing to the given new page. If an error occur it falls back to a PDPageXYZDestination.
      Parameters:
      dest -
      destPage - the new pointed page
      Returns:
      the cloned page destination
    • resolvePageDestination

      public static org.sejda.sambox.pdmodel.PDPage resolvePageDestination(org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageDestination destination, org.sejda.sambox.pdmodel.PDDocument document)
      Tries to resolve the page pointed by a page destination. It's usually just a PDPageDestination.getPage() call but some tools out there wrongly put the page number instead of the page ref. With this method we try to handle that.
      Parameters:
      destination -
      document -
      Returns:
      The page pointed by the destination or null
      See Also:
    • copyOutlineDictionary

      public static void copyOutlineDictionary(org.sejda.sambox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem from, org.sejda.sambox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem to)
      Copies the dictionary from the given PDOutlineItem to the destination one
      Parameters:
      from -
      to -
    • pageGroupedOutlinePageDestinations

      public static Map<org.sejda.sambox.pdmodel.PDPage,Set<org.sejda.sambox.pdmodel.interactive.documentnavigation.destination.PDPageDestination>> pageGroupedOutlinePageDestinations(org.sejda.sambox.pdmodel.PDDocument document)
      Parameters:
      document -
      Returns:
      a multi map representing a page grouped view of all the outline page destinations.
    • getFlatOutline

      public static List<OutlineItem> getFlatOutline(org.sejda.sambox.pdmodel.PDDocument document)
      Parameters:
      document -
      Returns:
      A sorted flat representation of the document outline
    • printOutline

      public static void printOutline(org.sejda.sambox.pdmodel.PDDocument document)