I read books on my Palm Tungsten E. It is very convenient - once you get used to it, not much different from a printed book.

The only problem is the multitute of book reader programs / formats / funny quoting styles / languages and so on which often makes preparing an ebook for reading quite a challenge. This is when you're thankful that you know Perl...

My reader of choice is Palmfiction - an open source program that understands many formats and languages (I read Russian, English and Spanish with it), has nice fonts and useful indications of the time, location in book and battery power % constantly on the top of the screen. Additionally, once you move your mouse over a word (or tap on it) it's taken right into the clipboard buffer so translating words using a dictionary is a very simple two tap process.

The format I prefer to use is zTxt - a compressed text format that Palmfiction understands and that shrinks books to ~1/3 of their plain text size. The free converter WinMakezTxt (warning, Russian interface) converts .rtf, .txt and .html to .ztxt and packs it into a .pdb so it's right there ready for the Palm.

So far so good... But many books are still not suitable for this process. PDFs, for instance. I detest the Palm Acrobat Reader - it's slow and bulky, and its converter is even bulkier. It isn't dictionary friendly and the display is uncomfortable. So, I'm converting PDFs to something more convenient. pdftohtml is a nice opensource utility that converts PDFs to HTML or XML. Then, I can either convert HTML directly to zTxt with WinMakezTxt or format it to my needs with Perl using HTML::TokeParser::Simple first.

As I said, RTFs are readily convertible to zTxt, but today I had to massage a RTF a little with Perl to suit my needs. The RTF file I refer to had dashes for quote delimiters that were for some reason invisible in text / zText formats. A simple script solved my problem here. For future, more challenging transformations, I might use Perl's RTF processing modules.