Nested top-level classes, i.e. static member classes or so-called "static inner" classes, certainly can be private. Non-nested top-level classes ("normal" or package-level classes) must be public or default.
"I'm not back." - Bill Harding, Twister
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