There's no such thing as a "submethod." A method is a method, and generally, yes, methods can call other methods. There are some specific caveats to do with access control, static vs. member methods, etc, but you can learn about those when you bump into them (which may be very soon.)
I'm a little confused about what you mean by "submethod", could you please clarify? In general though, any class can call any public method of any other class. A class can also call protected methods of any other class that it extends. Private methods may be called by other methods of the same class. Methods without any visibility modifier in a class may be called by any other class that extends it, as well as other classes in the same package.
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