Class SimpleBookmark

  • All Implemented Interfaces:
    SimpleXMLDocHandler

    final class SimpleBookmark
    extends java.lang.Object
    implements SimpleXMLDocHandler
    Bookmark processing in a simple way. It has some limitations, mainly the only action types supported are GoTo, GoToR, URI and Launch.

    The list structure is composed by a number of HashMap, keyed by strings, one HashMap for each bookmark. The element values are all strings with the exception of the key "Kids" that has another list for the child bookmarks.

    All the bookmarks have a "Title" with the bookmark title and optionally a "Style" that can be "bold", "italic" or a combination of both. They can also have a "Color" key with a value of three floats separated by spaces. The key "Open" can have the values "true" or "false" and signals the open status of the children. It's "true" by default.

    The actions and the parameters can be:

    • "Action" = "GoTo" - "Page" | "Named"
      • "Page" = "3 XYZ 70 400 null" - page number followed by a destination (/XYZ is also accepted)
      • "Named" = "named_destination"
    • "Action" = "GoToR" - "Page" | "Named" | "NamedN", "File", ["NewWindow"]
      • "Page" = "3 XYZ 70 400 null" - page number followed by a destination (/XYZ is also accepted)
      • "Named" = "named_destination_as_a_string"
      • "NamedN" = "named_destination_as_a_name"
      • "File" - "the_file_to_open"
      • "NewWindow" - "true" or "false"
    • "Action" = "URI" - "URI"
      • "URI" = "http://sf.net" - URI to jump to
    • "Action" = "Launch" - "File"
      • "File" - "the_file_to_open_or_execute"
    • Field Detail

      • topList

        private java.util.ArrayList topList
      • attr

        private final java.util.Stack attr
    • Constructor Detail

      • SimpleBookmark

        private SimpleBookmark()
        Creates a new instance of SimpleBookmark
    • Method Detail

      • mapGotoBookmark

        private static void mapGotoBookmark​(java.util.HashMap map,
                                            PdfObject dest,
                                            IntHashtable pages)
      • makeBookmarkParam

        private static java.lang.String makeBookmarkParam​(PdfArray dest,
                                                          IntHashtable pages)
      • getNumber

        private static int getNumber​(PdfIndirectReference indirect)
        Gets number of indirect. If type of directed indirect is PAGES, it refers PAGE object through KIDS. (Contributed by Kazuya Ujihara)
        Parameters:
        indirect - 2004-06-13
      • createOutlineAction

        private static void createOutlineAction​(PdfDictionary outline,
                                                java.util.HashMap map,
                                                PdfWriter writer,
                                                boolean namedAsNames)
      • iterateOutlines

        static java.lang.Object[] iterateOutlines​(PdfWriter writer,
                                                  PdfIndirectReference parent,
                                                  java.util.List kids,
                                                  boolean namedAsNames)
                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • exportToXMLNode

        private static void exportToXMLNode​(java.util.List list,
                                            java.io.Writer out,
                                            int indent,
                                            boolean onlyASCII)
                                     throws java.io.IOException
        Exports the bookmarks to XML. Only of use if the generation is to be include in some other XML document.
        Parameters:
        list - the bookmarks
        out - the export destination. The writer is not closed
        indent - the indentation level. Pretty printing significant only
        onlyASCII - codes above 127 will always be escaped with &#nn; if true, whatever the encoding
        Throws:
        java.io.IOException - on error
      • exportToXML

        private static void exportToXML​(java.util.List list,
                                        java.io.Writer wrt,
                                        java.lang.String encoding,
                                        boolean onlyASCII)
                                 throws java.io.IOException
        Exports the bookmarks to XML.
        Parameters:
        list - the bookmarks
        wrt - the export destination. The writer is not closed
        encoding - the encoding according to IANA conventions
        onlyASCII - codes above 127 will always be escaped with &#nn; if true, whatever the encoding
        Throws:
        java.io.IOException - on error
      • endElement

        public void endElement​(java.lang.String tag)
        Description copied from interface: SimpleXMLDocHandler
        Called when an end tag is found.
        Specified by:
        endElement in interface SimpleXMLDocHandler
        Parameters:
        tag - the tag name
      • startElement

        public void startElement​(java.lang.String tag,
                                 java.util.HashMap h)
        Description copied from interface: SimpleXMLDocHandler
        Called when a start tag is found.
        Specified by:
        startElement in interface SimpleXMLDocHandler
        Parameters:
        tag - the tag name
        h - the tag's attributes
      • text

        public void text​(java.lang.String str)
        Description copied from interface: SimpleXMLDocHandler
        Called when a text element is found.
        Specified by:
        text in interface SimpleXMLDocHandler
        Parameters:
        str - the text element, probably a fragment.