Package com.lowagie.text.pdf
Class SimpleBookmark
java.lang.Object
com.lowagie.text.pdf.SimpleBookmark
- All Implemented Interfaces:
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"
- Author:
- Paulo Soares (psoares@consiste.pt)
-
Method Summary
Modifier and TypeMethodDescriptionstatic voideliminatePages(List list, int[] pageRange) Removes the bookmark entries for a number of page ranges.voidCalled after the document is parsed.voidendElement(String tag) Called when an end tag is found.static voidexportToXML(List list, OutputStream out, String encoding, boolean onlyASCII) Exports the bookmarks to XML.static voidexportToXML(List list, Writer wrt, String encoding, boolean onlyASCII) Exports the bookmarks to XML.static voidexportToXMLNode(List list, Writer out, int indent, boolean onlyASCII) Exports the bookmarks to XML.static ListgetBookmark(PdfReader reader) Gets aListwith the bookmarks.static ListImport the bookmarks from XML.static ListimportFromXML(Reader in) Import the bookmarks from XML.static Object[]iterateOutlines(PdfWriter writer, PdfIndirectReference parent, List kids, boolean namedAsNames) static voidshiftPageNumbers(List list, int pageShift, int[] pageRange) For the pages in range add thepageShiftto the page number.voidCalled when the document starts to be parsed.voidstartElement(String tag, HashMap h) Called when a start tag is found.voidCalled when a text element is found.
-
Method Details
-
getBookmark
Gets aListwith the bookmarks. It returnsnullif the document doesn't have any bookmarks.- Parameters:
reader- the document- Returns:
- a
Listwith the bookmarks ornullif the document doesn't have any
-
eliminatePages
Removes the bookmark entries for a number of page ranges. The page ranges consists of a number of pairs with the start/end page range. The page numbers are inclusive.- Parameters:
list- the bookmarkspageRange- the page ranges, always in pairs.
-
shiftPageNumbers
For the pages in range add thepageShiftto the page number. The page ranges consists of a number of pairs with the start/end page range. The page numbers are inclusive.- Parameters:
list- the bookmarkspageShift- the number to add to the pages in rangepageRange- the page ranges, always in pairs. It can benullto include all the pages
-
iterateOutlines
public static Object[] iterateOutlines(PdfWriter writer, PdfIndirectReference parent, List kids, boolean namedAsNames) throws IOException - Throws:
IOException
-
exportToXMLNode
public static void exportToXMLNode(List list, Writer out, int indent, boolean onlyASCII) throws IOException Exports the bookmarks to XML. Only of use if the generation is to be include in some other XML document.- Parameters:
list- the bookmarksout- the export destination. The writer is not closedindent- the indentation level. Pretty printing significant onlyonlyASCII- codes above 127 will always be escaped with &#nn; iftrue, whatever the encoding- Throws:
IOException- on error
-
exportToXML
public static void exportToXML(List list, OutputStream out, String encoding, boolean onlyASCII) throws IOException Exports the bookmarks to XML. The DTD for this XML is:<?xml version='1.0' encoding='UTF-8'?> <!ELEMENT Title (#PCDATA|Title)*> <!ATTLIST Title Action CDATA #IMPLIED Open CDATA #IMPLIED Page CDATA #IMPLIED URI CDATA #IMPLIED File CDATA #IMPLIED Named CDATA #IMPLIED NamedN CDATA #IMPLIED NewWindow CDATA #IMPLIED Style CDATA #IMPLIED Color CDATA #IMPLIED > <!ELEMENT Bookmark (Title)*>- Parameters:
list- the bookmarksout- the export destination. The stream is not closedencoding- the encoding according to IANA conventionsonlyASCII- codes above 127 will always be escaped with &#nn; iftrue, whatever the encoding- Throws:
IOException- on error
-
exportToXML
public static void exportToXML(List list, Writer wrt, String encoding, boolean onlyASCII) throws IOException Exports the bookmarks to XML.- Parameters:
list- the bookmarkswrt- the export destination. The writer is not closedencoding- the encoding according to IANA conventionsonlyASCII- codes above 127 will always be escaped with &#nn; iftrue, whatever the encoding- Throws:
IOException- on error
-
importFromXML
Import the bookmarks from XML.- Parameters:
in- the XML source. The stream is not closed- Returns:
- the bookmarks
- Throws:
IOException- on error
-
importFromXML
Import the bookmarks from XML.- Parameters:
in- the XML source. The reader is not closed- Returns:
- the bookmarks
- Throws:
IOException- on error
-
endDocument
public void endDocument()Description copied from interface:SimpleXMLDocHandlerCalled after the document is parsed.- Specified by:
endDocumentin interfaceSimpleXMLDocHandler
-
endElement
Description copied from interface:SimpleXMLDocHandlerCalled when an end tag is found.- Specified by:
endElementin interfaceSimpleXMLDocHandler- Parameters:
tag- the tag name
-
startDocument
public void startDocument()Description copied from interface:SimpleXMLDocHandlerCalled when the document starts to be parsed.- Specified by:
startDocumentin interfaceSimpleXMLDocHandler
-
startElement
Description copied from interface:SimpleXMLDocHandlerCalled when a start tag is found.- Specified by:
startElementin interfaceSimpleXMLDocHandler- Parameters:
tag- the tag nameh- the tag's attributes
-
text
Description copied from interface:SimpleXMLDocHandlerCalled when a text element is found.- Specified by:
textin interfaceSimpleXMLDocHandler- Parameters:
str- the text element, probably a fragment.
-