I'd recommend Document Generation, if you have that at your fingertips - you can put that into a workflow and trigger it based on any data you'd like.
But that's likely just going to pop up in the window for the user, unless you're good enough with JS that you can build it out to start the process, and store it elsewhere. I am not.
Thanks very much, I will have a look at it.
Retrieving data ...