We don't get a lot of choice/option in how we move documents and always seem to be dictated to by the source and receiving systems. We use Ensemble to pick up/receive documents and then manipulate them into whatever method the receiving system can receive them in.
Some examples of what we do;
* We pick up documents as streams from within an application database (using SQL Adapter), and querying other application database tables for metadata.
* We then transform this into an MDM^T02 message and send out (with PDF stream or HTML inside).