LOL, demon threads You mean Daemon Threads. These threads provides services for other threads. You can set one by calling setDaemon(true). One important thing to remember is that when all non-daemon threads end, the program exits whether or not there ar daemon threads running.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com