In the past I've posted some articles [1, 2] about generating Office 2003 documents from a server-side Java application. I also posted some example code. Of note, the Office 2003 XML Reference Schemas are now also available under the Open Specification Promise. Basically, with the OSP, Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation to the extent it conforms to a Covered Specification. In other words, Microsoft promises not to bother you if you use the specs covered under OSP. This promise is subject to some conditions, check the OSP website for full details.