Lo hemos hecho de forma programática (fuente cerrada en este momento, lo siento) por lo que podría ser de ayuda, pero tenga cuidado con algunos inconvenientes.
Una es que el proyecto POI (al menos cuando lo vimos el año pasado), era bastante incompleto. No hizo Gráficos PPTX, que es la característica que queríamos. De hecho, el sitio de POI puede no estar actualizado, pero no parece ser compatible con el formato de PowerPoint 20087 (http://poi.apache.org/slideshow/index.html). Todo el mundo recomienda este proyecto, pero nuestra evaluación fue que era bastante inútil para generar archivos de PowerPoint 2007 a través de Java. Tu kilometraje puede variar.
Apose también tenía algunas limitaciones significativas cuando lo miramos; no hacer Gráficos en PowerPoint 2007 siendo el problema de bloqueo para nosotros.
Otro problema es que PowerPoint 2007 puede tener errores. Hemos tenido varios archivos PPT producidos progamáticamente que causaron bloqueos, pero cuando probamos, descubrimos que podemos reprogramar y bloquear con simples documentos PPTX creados en PowerPoint 2007, es decir, no nuestro código.
Al final, hicimos lo siguiente: desempaquetó una plantilla de archivo de PowerPoint en una carpeta, luego a pedido, llenó la plantilla XML con nuevos valores, lo comprimió, renombró varios elementos & se lo entregó al usuario como un PPTX válido. Funciona bien, salvo el extraño bloqueo de PowerPoint cuando las personas editan el archivo. Si hubiera mercado para eso, creo que podríamos empaquetar el código como un servicio web (es decir, xml/csv -> PPTX) o armar un paquete comercial, pero no lo haríamos gratis.
Supongo que * en realidad * se corrompe mientras se guarda y que aparece el mensaje al abrirlo. Dicho esto, OpenOffice.org se basa en Java ... –