Thanks for taking interest in GroupDocs APIs for Java and posting your concerns.
We'd like to apprise you that GroupDocs.Viewer for Java 3.x is a UI and framework agnostic API that can be integrated in any Java project.
Coming to your questions,
Do I need only viewer solution if I want to control user's downloading/copying ?
From controlling user's downloading, do you mean that allowing some users to download and resisting downloading for other users ?
If yes, you can resist or allow document downloading, basically it depends on how you implement business logic in your project. Secondly, please note that GroupDocs.Viewer for Java 3.x doesn't render/show original document as it is (in its actual format), instead of that it renders document in HTML or Image format. So, document rendered in viewer project is secure for sure, users cannot get/download original document until you allow them to download. They only see document rendered in HTML or Image format.
Do I need to convert original documents in some form to use your product ?
No, you don't need to convert original document in any format in order to utilize them in viewer. API takes any supported document
in its original format and renders it (into HTML or Image).
Do I need to upload documents on your server in some specified format ? I would like to store the documents on my server.
As far as Next Generation GroupDocs.Viewer for Java is concerned, it allows user to render documents directly from your own server using custom data handlers
For mobile apps, can this be made feasible if user downloads the file, it can be viewed only in our viewer not any where else.
Can you please elaborate this scenario a bit in details. You cooperation will be greatly appreciated.