public final class SimpleBookmark extends Object implements SimpleXMLDocHandler
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 with values in the range 0.0 to 1.0 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:
Modifier and Type | Method and Description |
---|---|
static void |
eliminatePages(List<HashMap<String,Object>> list, int[] pageRange)
Removes the bookmark entries for a number of page ranges.
|
void |
endDocument()
Called after the document is parsed.
|
void |
endElement(String tag)
Called when an end tag is found.
|
static void |
exportToXML(List<HashMap<String,Object>> list, OutputStream out, String encoding, boolean onlyASCII)
Exports the bookmarks to XML.
|
static void |
exportToXML(List<HashMap<String,Object>> list, Writer wrt, String encoding, boolean onlyASCII)
Exports the bookmarks to XML.
|
static void |
exportToXMLNode(List<HashMap<String,Object>> list, Writer out, int indent, boolean onlyASCII)
Exports the bookmarks to XML.
|
static List<HashMap<String,Object>> |
getBookmark(PdfReader reader)
Gets a List with the bookmarks.
|
static List<HashMap<String,Object>> |
getBookmark(PdfReader reader, PdfDictionary outline, boolean includeRoot)
Gets a List with the bookmarks that are children of outline .
|
static List<HashMap<String,Object>> |
importFromXML(InputStream in)
Import the bookmarks from XML.
|
static List<HashMap<String,Object>> |
importFromXML(Reader in)
Import the bookmarks from XML.
|
static Object[] |
iterateOutlines(PdfWriter writer, PdfIndirectReference parent, List<HashMap<String,Object>> kids, boolean namedAsNames) |
static void |
shiftPageNumbers(List<HashMap<String,Object>> list, int pageShift, int[] pageRange)
For the pages in range add the pageShift to the page number.
|
void |
startDocument()
Called when the document starts to be parsed.
|
void |
startElement(String tag, Map<String,String> h)
Called when a start tag is found.
|
void |
text(String str)
Called when a text element is found.
|
public static List<HashMap<String,Object>> getBookmark(PdfReader reader)
List
with the bookmarks. It returns null
if the document doesn't have any bookmarks.
reader
- the document
List
with the bookmarks or null
if the document doesn't have any
public static List<HashMap<String,Object>> getBookmark(PdfReader reader, PdfDictionary outline, boolean includeRoot)
List
with the bookmarks that are children of outline
. It returns null
if the document doesn't have any bookmarks.
reader
- the document
outline
- the outline dictionary to get bookmarks from
includeRoot
- indicates if to include outline
parameter itself into returned list of bookmarks
List
with the bookmarks or null
if the document doesn't have any
public static void eliminatePages(List<HashMap<String,Object>> list, int[] pageRange)
list
- the bookmarks
pageRange
- the page ranges, always in pairs.
public static void shiftPageNumbers(List<HashMap<String,Object>> list, int pageShift, int[] pageRange)
pageShift
to the page number. The page ranges consists of a number of pairs with the start/end page range. The page numbers are inclusive.
list
- the bookmarks
pageShift
- the number to add to the pages in range
pageRange
- the page ranges, always in pairs. It can be null
to include all the pages
public static Object[] iterateOutlines(PdfWriter writer, PdfIndirectReference parent, List<HashMap<String,Object>> kids, boolean namedAsNames) throws IOException
IOException
public static void exportToXMLNode(List<HashMap<String,Object>> list, Writer out, int indent, boolean onlyASCII) throws IOException
list
- the bookmarks
out
- the export destination. The writer is not closed
indent
- the indentation level. Pretty printing significant only. Use -1
for no indents.
onlyASCII
- codes above 127 will always be escaped with nn; if true
, whatever the encoding
IOException
- on error
public static void exportToXML(List<HashMap<String,Object>> list, OutputStream out, String encoding, boolean onlyASCII) throws IOException
list
- the bookmarks
out
- the export destination. The stream 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
IOException
- on error
public static void exportToXML(List<HashMap<String,Object>> list, Writer wrt, String encoding, boolean onlyASCII) throws IOException
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
IOException
- on error
public static List<HashMap<String,Object>> importFromXML(InputStream in) throws IOException
in
- the XML source. The stream is not closed
IOException
- on error
public static List<HashMap<String,Object>> importFromXML(Reader in) throws IOException
in
- the XML source. The reader is not closed
IOException
- on error
public void endDocument()
SimpleXMLDocHandler
endDocument
in interface SimpleXMLDocHandler
public void endElement(String tag)
SimpleXMLDocHandler
endElement
in interface SimpleXMLDocHandler
tag
- the tag name
public void startDocument()
SimpleXMLDocHandler
startDocument
in interface SimpleXMLDocHandler
public void startElement(String tag, Map<String,String> h)
SimpleXMLDocHandler
startElement
in interface SimpleXMLDocHandler
tag
- the tag name
h
- the tag's attributes
public void text(String str)
SimpleXMLDocHandler
text
in interface SimpleXMLDocHandler
str
- the text element, probably a fragment.
Copyright © 1998–2022. All rights reserved.