Yes, you can encrypt/secure any PDF as shown in EncTest sample (http://www.pdftron.com/pdfnet/samplecode.html#EncTest, also available as part of PDFNet SDK Sample).
For example:
PDFDoc doc=new PDFDoc((input_path + "fish.pdf"));
doc.initSecurityHandler();
SecurityHandler new_handler=new SecurityHandler();
new_handler.changeUserPassword("mypass");
// Set Permissions
new_handler.setPermission (SecurityHandler.e_print, true);
new_handler.setPermission (SecurityHandler.e_extract_content, false);
doc.setSecurityHandler(new_handler);
doc.save("secured.pdf", SDFDoc.e_linearized, null);
doc.close();
Note that with PDFNet also offers more advanced ways to protect content (including custom filters - e.g. see custom filter sample that comes as part of Android/iOS SDK). You can also prevent any disk caching... etc.
> 2) Can password be supplied programmatically by the android app without the user having
> to enter the password
For more info on linearization (a.k.a fast web view), please see:
https://groups.google.com/d/msg/pdfnet-sdk/3j1wVxz_OVw/q-z-YJbc2eoJ
This eliminates need for various hacks to enable smooth online document viewing. For example, there is no need to split PDF into many files (e.g. per-page). The file size does not bloat since shared resources such as fonts, images, are not replicated among files. There are no hiccups during viewing and everything works auto-magically... PDFNet viewers also support saving partial download sessions. This means that your users can view partial content offline and continue with download when internet connection resumes.
To test this try the viewer sample app – and specifically PDFViewCtrl.openUrl().
If you are set on using single page PDFs, you can still use PDFNet for viewing but is a bit more work. You would need to manage file download, manage the addition of downloaded pages manually. For this, you might want to use the Tool, which has the onPageTurning() callback. In this callback you can add/remove pages, for example (see PDFPage sample for concrete code), and then update the layout after the modifications calling PDFViewCtrl.updatePageLayout(). For a start on the Tool interface, please check this forum post
(https://groups.google.com/d/msg/pdfnet-sdk/fG-20n1gcPU/4Zslh603PZ8J) and our documentation (http://www.pdftron.com/pdfnet/mobile/Javadoc/index.html).