Package com.aowagie.text.pdf
Class SimpleBookmark
- java.lang.Object
-
- com.aowagie.text.pdf.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"
-
-
Constructor Summary
Constructors Modifier Constructor Description privateSimpleBookmark()Creates a new instance of SimpleBookmark
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.util.ListbookmarkDepth(PdfReader reader, PdfDictionary outline, IntHashtable pages)private static voidcreateOutlineAction(PdfDictionary outline, java.util.HashMap map, PdfWriter writer, boolean namedAsNames)voidendDocument()Called after the document is parsed.voidendElement(java.lang.String tag)Called when an end tag is found.private static voidexportToXML(java.util.List list, java.io.Writer wrt, java.lang.String encoding, boolean onlyASCII)Exports the bookmarks to XML.private static voidexportToXMLNode(java.util.List list, java.io.Writer out, int indent, boolean onlyASCII)Exports the bookmarks to XML.private static intgetNumber(PdfIndirectReference indirect)Gets number of indirect.(package private) static java.lang.Object[]iterateOutlines(PdfWriter writer, PdfIndirectReference parent, java.util.List kids, boolean namedAsNames)private static java.lang.StringmakeBookmarkParam(PdfArray dest, IntHashtable pages)private static voidmapGotoBookmark(java.util.HashMap map, PdfObject dest, IntHashtable pages)voidstartDocument()Called when the document starts to be parsed.voidstartElement(java.lang.String tag, java.util.HashMap h)Called when a start tag is found.voidtext(java.lang.String str)Called when a text element is found.
-
-
-
Method Detail
-
bookmarkDepth
private static java.util.List bookmarkDepth(PdfReader reader, PdfDictionary outline, IntHashtable pages)
-
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.IOExceptionExports 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:
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.IOExceptionExports 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:
java.io.IOException- on error
-
endDocument
public void endDocument()
Description copied from interface:SimpleXMLDocHandlerCalled after the document is parsed.- Specified by:
endDocumentin interfaceSimpleXMLDocHandler
-
endElement
public void endElement(java.lang.String tag)
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
public void startElement(java.lang.String tag, java.util.HashMap h)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
public void text(java.lang.String str)
Description copied from interface:SimpleXMLDocHandlerCalled when a text element is found.- Specified by:
textin interfaceSimpleXMLDocHandler- Parameters:
str- the text element, probably a fragment.
-
-