We only use Smartforms with POs, so I can't speak for Adobe forms, but believe that output should function pretty much the same way.
1. Preview - just use standard Preview functionality, there is no need to reinvent bicycle.
2. Sending by email - this should also be handled by using standard functionality of sending output by email. This can be done through the condition records or by adding output manually. Again, no need to reinvent.
3. Dialog box for email - I haven't used it myself, but I think there is an option to set up a printer with type MAIL that would allow something like that. You might want to search SCN or check with your Basis admin.
Standard functionality exists for all of this steps and, even though it does not work in exact way as the customers want in this case, I believe any customization effort would not have sufficient ROI.