PalmIO - Useful Java Classes

The PalmIO classes make up a small tree that allows reading of Palm PDB files and, by extension, zTXT and PalmDoc documents. The base class is PalmDB with ZtxtDB and PalmDocDB built on top of it. Utility and Bookmarks provide some supplemental methods for handling Palm data and e-book bookmarks.

PalmDB - This class can read in a standard Palm PDB file and provide access to all the data contained within. It contains methods for accessing all values in the PDB header as well as reading a specified PDB record on demand.

ZtxtDB - Extends PalmDB and allows reading of zTXT documents. Provides access to all values in the zTXT header as well as all bookmark and annotation data. It can also read and decompress zTXT data records and validate the stored zTXT CRC32 value.

PalmDocDB - Extends PalmDB and allows reading of PalmDoc documents. Provides access to all values in the PalmDoc header as well as all bookmark data. It can read and decompress (if necessary) PalmDoc data records. It contains the necessary workarounds for broken PalmDoc files which do not have uniform uncompressed record lengths.

Utility - Provides a handul of miscellaneous static methods to make working with Palm data easier. It has methods to convert Palm ID values to and from Strings, methods to read/write unsigned 32 bit integers, and methods to convert dates between the Palm OS and standard UNIX/Java epochs. There is also a helper method which will output a block of data in both hex and ASCII to aid debugging.

The classes have been extensively commented and the (hopefully) useful JavaDoc output is available.

The source is not yet in the Subversion repository. Currently, the most recent version is available for download here.