Welcome to PalmPDF, the native PDF viewer for Palm OS
-----------------------------------------------------

This is the release version of my Xpdf port for Palm OS 5.
Almost all PDF files can be rendered directly to the screen.
You can navigate with the 5-way keys and use either the other
4 hard keys for Zoom In/Out, Rotation and Quit or use the
on-screen buttons and your stylus (drag'n'move) to navigate.

Requirements:
-------------
* Palm OS Version 5.0 or better
* 100 MHz ARM processor
* an external memory card with more than 10 MB of free storage
* at least 2 MB free storage memory on your device
* at least 1.5 MB free dynamic memory on your device

Recommended:
------------
* 300 MHz ARM processor
* fast external memory card with 100 MB of free storage
* 5 MB free storage memory on your device
* 5 MB free dynamic memory on your device

Installation:
-------------
Just copy the .prc file to your device. You can then copy the PalmPDF
folder to your memory card (/PALM/Programs/) or let PalmPDF copy the
font files for you to the first memory card at first app start.
After the first start the size of PalmPDF will be reduced to 1.4 MB.
If you like you can further reduce the size of PalmPDF to 100 KB by moving
the render modul to the memory card too.

Usage:
------
Start PalmPDF, select your PDF and press "Show".
You can also open the menu and convert your PDF to PalmDoc and read it
with a Doc reader. Several Doc reader can be launched automatically with
the converted document.
Additional, PalmPDF has a presentation mode implemented. It was tested with
the MMV-100 from Sony Ericsson (around 35 US-$), a BT->TV adapter
(Bluetooth Media Viewer).
You can plug this adapter also into a digital projector and get a really
cool presentation combo. There are other BT->TV adapter out there as well,
but PalmPDF wasn't tested with.
You can adjust several options. Please consult the help inside the app.
If you want PalmPDF to handle PDF receiving or attachments you have to
install it on the device, not on an external card. In this case you can
move the rendering engine to your external card and PalmPDF will only
occupy around 100 kB of your main memory.

Something about memory on PalmOS:
---------------------------------
On-device memory in Palm OS is devided into two parts: dynamic memory and
storage memory. They are sometimes called dynamic heap and storage heap.

Dynamic memory: Is actually memory in which the processor can read and write
without any restriction and which is used for temporarly buffers. One can
compare it with the main memory on a desktop system. It is unfortunately
always limited. There are hacks which allow you to grow it: FHR (Fargo Heap
Resizer) or UDMH (Unlimited Dynamic Memory Hack).

FHR only runs on some older Devices and can only add a small amount of
additional memory. But it adds formerly unused memory and is therefore very
safe to use.

UDMH allows you to use the whole storage memory as dynamic memory. This can
be dangerous in some situations as all your databases are unprotected. But
it allows you to get quite a large amount of dynamic memory.

Storage memory: Is actually memory which is write protected by the MMU.
Applications can't just write to it. They have to use special OS functions,
which also check the data integrity. One can compare it a bit with the storage
space on the harddisk of a desktop system.

The OS launcher reports the size of storage memory and deleting apps on the
device frees storage memory not dynamic memory.

Applications like PalmPDF needs a lot of dynamic memory, therefore the size of
free dynamic memory is reported in PalmPDF.

Tips:
-----
* From Peter Eisenhauer about speed:
The rendering time of PalmPDF depends on the speed of your memory card.
Not only does PalmPDF need to read the file from your memory card but
also it needs to save embedded fonts temporary to your card. This means
you get the best performance with a either a fast memory card or you
put the PalmPDF folder + the fonts into a ram disk.
* Another one:
When you get endless hotsyncs and PalmPDF might be the suspected file,
please use FileZ or FileProg to remove the backup bit from the PalmPDF.prc
* And another one:
When you have SkinUI installed you might get problems with Mark and Zoom.
Please disable SkinUI for PalmPDF.

Disclaimer:
-----------
Many hours of work were spend to make PalmPDF as stable as possible.
Although this work you might run into problems if your dynamic heap
size is limited. PalmPDF will try to solve it, but in rarely cases it
might force a Softreset. Your data on your device won't be harmed
through this. Anyway, please use it on your own risk!



Henk "MetaView" Jonas
www.metaviewsoft.de
metaview@web.de
(Please put PalmPDF in the subject line)


PalmPDF contains code from the pnoJpegLib:

[pnoJpegLib]
Copyright (C) 2004, Stefan Stolz
Based on the work auf Yves Piguet and the Independent JPEG Group

Redistribution and use in source and binary forms, with or without modification, 
are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice, 
      this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice, 
      this list of conditions and the following disclaimer in the documentation 
      and/or other materials provided with the distribution.
    * Neither the name of the Yves Piguet nor the names of its contributors may 
      be used to endorse or promote products derived from this software without 
      specific prior written permission.


License:
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE 
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.



The Jpeg-Algorithms are provided by the Independent JPEG Group
There is their License valid.

Parts of this Software are written by Yves Piguet. For this Parts you have to follow
his License. (http://www.nyctergatis.com/jpeglib/)

Copyright (c) 2003, Yves Piguet.
All rights reserved.
Based on the work of the Independent JPEG Group.
[/pnoJpegLib]


History:
--------

0.1 10/18/05
- first public release

0.2 10/18/05
- first small visual enhancements
- screen buttons doesn't work yet
- debug log can be enabled
- better DIA handling

0.3 10/21/05
- code update to xpdf3.01
- b/w, gray or color mode (memory, speed)
- anti aliasing on/off (speed)
- status line (page, zoom, busy)
- screen buttons still don't work
- bugfix: rocker right
- debug key for reporting memory use
- UPDATE: Softreset forced when device runs out of usable memory

0.4 10/26/05
- much faster navigation
- zoom in/out doesn't reset scroll values
- fixed bug with Type1C fonts
- b/w is now a real low-memory mode (works even on my T1 with FHR)
- screen buttons work
- better hard key handling
- help text and memory display on main window
- going from alpha to beta state

0.5 11/01/05
- Resets auto off timer
- doesn't disable power key (only happened on some devices)
- icon with transparent bg
- scroll bars added, only as info not for navigation
- Finally: landscape support
- directory on memory card is registered for .pdf (Hotsync)
- PalmPDF is registered as receiver for .pdf files over BT or IR (file transfer)
- Zoom select popup menu, Page select popup window
- TrueType support

0.6 (11/15/05)
- fixed a memory leak in the launcher form
- fixed display error because of not implemented qsort function
- fixed some issues with not found fonts
- PalmPDF is more robust in finding its own work directory (PALM/Programs/PalmPDF)
  when more than one volume is present
- more zoom values
- adding initial zoom
- remembers last page for last visited document
- can open files everywhere on every card
- pre-rendered tiles are stored in the storage ram, if possible
- most resets are gone, PalmPDF will automatically reduce rendering mode
  and zoom until the page can be displayed (but you better use the correct
  mode from the beginning)
- better readable in b/w mode, let's say it's usable now...
- files can be deleted using the launcher form's menu
- possibility to skip large images (faster rendering)
- PalmPDF starts after receiving of a PDF file
- PalmDoc export and autolaunch of an installed Doc reader
  (Hardcoded: Palm Reader, Palm Fiction, TiBR, CSoptRun)

0.7 (11/23/05, "Thanksgiving update")
- bug fix regarding UDMH and FtrPtrNew
- bug fix on Zire72
- bug fix with SnapperMail PDF attachment
- Updated GUI
- JogDial support on TH55
- Low-Res support
- added 65%, 85% and 95% as additional zoom factor
- remembers last scroll values for last visited document
- Basic rotation support using the 1st hard key (Function on Zodiac)
- smaller scroll values when using the 5-way for scrolling (better readable)

0.8 (11/26/05 "postponed Thangsgiving update")
- Basic memory manager to avoid fragmentation, might bring better performance on some devices
- Better installation, all fonts inside the app and extracted at first run
- ARMlet (1.2 MB) can be moved to memory card, leading around 38 kB PRC in main memory
  to handle attachments and receive PDF files
- Beam/Send for PDF files
- Presentation mode, sends rendered pages as jpeg to any BT device (using Object Exchange)
  together with a Bluetooth Media Adapter (BT->TV) you get a great presentation combo

0.9 (12/13/05 "intermediate update")
- bug fix: Security patch from Xpdf3.01 added
- bug fix: lines too big on certain zoom values (related to Xpdf)
- bug fix: more PDFs can be converted to PalmDOCs
- bug fix: Hotsync issue fixed? (if not, take care to remove the backup bit from PalmPDF)
- bug fix: Center button on Treo not captured anymore, allows keyguard disabling
- File selection now better recognizable
- Page selector pops up with an empty page number
- selectable DocReader (one of 5 defaults)
- added iSilo to the default DocReaders
- second tap opens file
- more frequent screen updates
- "Please wait" message when render engine is accessed on card
- Refresh after hardware zoom buttons delayed
- Refresh after hardware rotation button delayed, also added a small response
- Optional: skip large images also skips decompress of images to speed up document reading
- "Find" support and file name with the new "battery" button

0.9a (12/15/05 "bug fix to 0.9")
- disable Palm Files support (something seems to be broken, I might need a device to test it)
- removed buffered read, to speed up rendering again
- LD bug is gone (unbelievable...)

1.0 rc1 (12/21/05 "X-mas update")
- bug fix: connection to FileBrowser app on LD and T5
- added support for password protected PDF files
- added MobiPocket to the default DocReaders
- Battery and Time in Info window
- adjustable stepsize for scrolling with the 5-way in Info window, saved
- different horz. settings for even and uneven pages, settable, saved
- settings saved for more recently documents (maybe 5)
- added autoscroll (for ebooks etc., access over info form)

1.0 rc2 (12/21/05 "New Year update")
- bug fix: default values for Scrollstep horizontal and vertical
- bug fix: Scrollstep is changed in the way the display is rotated
- bug fix: memory loss at presentation mode
- presentation mode controllable without stylus
- possibility to abort PalmDOC extraction
- allows to set start and end page for PalmDOC extraction
- Battery and Time in status bar

1.0 (01/18/06 "1st full release")
- moved the password dialog to cover all display and extract options
- made password dialog larger and added multi-line fields
- Content (if included in file) is extracted and can be accessed from the Info window
- Invers video mode added
- moved some more stuff into storage
- "Find" can be interrupted (tap the small progress bar)
- Render mode can be switched in Info window
- faster rendering, text extraction of current page are delayed until a "find" is called
- Image decoding is skipped if only a small amount of memory will be free after it
- Rendering can be interrupted (tap the small progress bar)
- bug fix: auto scroll working again

1.1 (02/19/06 "1st update")
- bugfix: Content extraction
- bugfix: security patch from xpdf 3.01pl2 added
- bugfix: MobiPocket is called with the created PalmDOC
- bugfix: Copy/Paste support in the search field
- memory check around Content-extraction, does prevent out-of-memory crahes
  with large files
- changed Scrollvalues
- changed progressbar a bit, extended "WAIT" to cover also the extraction
  of content
- added file handling support with RescoExplorer, ZLauncher, MobiSystems
  OfficeSuite etc.
- direct mode for the apps above, means no stop in the file browser and direct
  exit after the renderer is closed
- support for keyboards
- swapped quit and rotation button on all devices except Zodiac to have quit
  on home button on TX
- when moving behind the right or left border using the keys, the display is
  wrapped around for better readability in large zooms
- Skin support, selectable
- Possibility to rename PDF files in the file browser
- when called by another app or received file (using exchange manager) PalmPDF
  goes back to the called app when the PDF file is closed

1.2 (03/30/06 "Birthday update")
- bugfix: Zodiac key handling
- bugifx: reworked renderer import to avoid app loosing (on reset, on NVFS)
          when renderer was moved to card
- bugfix: path creation for PalmPDF's folder
- reworked button layout for easier skinning
- search next button
- button to toggle between move, mark and zoom with stylus
  (zoom isn't implemented yet)
- can read pdf files which where converted by Adobe Acrobat for PalmOS
  (.pdb) when transfered to the card (the files are usually stored
  in "/PALM/Launcher" or "Applications")
- shows also the internal volume on TX
- added a scratchpad to store text parts from the PDF file
- added a bookmark list to store user defined bookmarks for a PDF file
- support for hyperlinks in PDF files (switch to mark and tap and drag a little bit)

1.3 (06/24/06 "Summer update")
- bugfix: Couldn't copy the fonts to the internal hidden volume on NVFS devices
- bugfix: Position wasn't always correct when calling a custom bookmark
- bugfix: Files from internal drive wasn't open correctly from 3rd party apps
- bugfix: when receiving a file, the .pdf extension is added if missing
- added "Exit" menu item
- added setting to control behaviour when returning from "receive file"
- added more validation checks in mark/copy code
- added code to allow bookmarks of copy-protected files
- added possibility to delete skins
- added "Back" for the presentation mode
- added possibility to configure the hard buttons

1.4 (09/30/06 "Hilbert's first month")
- bugfix: on Zodiac, page up/down also with right buttons
- bugfix: volume labels were broken on very first start
- bugfix: right/left on older Palm devices was broken
- bugfix: JogDial on Clie was broken
- bugifx: SCBK_ files weren't removed from internal memory
- added: skin files can now be on the external/internal card, folder /PALM/Programs/PalmPDF/
- added: PalmPDF can now send the current page as Jpeg
- added: PalmPDF can now print the current page on a PCL or PS network printer using the same
  settings and the same protocol as the great PrintIt from Alex Pruss, see
  http://handypalmstuff.sf.net/
- added: ReFlow-mode, text is extracted and displayed page-wise
- added: zoom-select, mark and zoom into the selected rectangle
- added: when pressing the middle 5-way button (debug) you can also scroll to the next page with up/down
- added: "Clear" to scratchpad
- added: some small feedbacks

1.5 (11/01/06 "Halloween update")
- added: enabled bytecode interpreter in freetype lib (thx to Theo)
- added: links to other PDFs in content list allowed (also bugfixed)
- added: mouse pointers for link, move, mark and zoom
- added: support for history of viewed pages
- added: links are always underlined
- bugfix: link detecting
- note: there seems to be a problem with SkinUI, Mark and Zoom doesn't really work. Please disable SkinUI (Popup List) for PalmPDF.
