3. Generate a 'compound' (zipped up XML files essentially) Document that is based on the (newer) Open Office XML format.
4. You could also use Pega Robotics as well - but I don't have enough experience on how to advise how you would do that exactly.
Option #1 is quite straightforward - you can pretty much follow the Apache POI examples - remembering that in PRPC Activities you will have to fully qualify Java classnames etc (there is no 'import' mechanism for Activities) - but it might not be suitable if you have a lot of formatting to do. (Or you could consider using a 'Template' Document which you modify I guess for this).
Option #2 works very well for simple small documents; it is pretty easy to map PRPC properties using a XML Stream Rule (you are basically just creating an XML document using this method) - but it doesn't scale as well for larger / complex documents. (The XML 2003 format is quite 'bloated' - but has the advantage of being a single document).
Option #3 requires more complex processing - since you have to construct several XML documents and then zip them up.