He usado Spreadsheet_Excel_Writer
en PHP, y es lo suficientemente bueno . No WYSIWYG, pero sí genera archivos XSL, y estoy contento con eso. Luego, puede use OpenOffice macro para convertir el documento a PDF. Funciona desde línea de comandos, ergo, también funciona desde scripts PHP.
O aquí hay una manera aún mejor.
Use OpenOffice para convertir una plantilla Smarty. Smarty es un genial motor de plantillas para PHP, lo recomiendo para este propósito. Luego genere HTML puro usando PHP con Smarty. Finalmente, simplemente convierta el HTML generado en PDF utilizando el método mencionado anteriormente.
Reporting Revolutionized (tm).
EDITAR Jun6 2009 Modded down? Ah no importa.
De todos modos, este método funciona en un servidor sin cabeza sin ejecutar X11. Tomé el script del mentioned link (excepto que lo puse en una colección preexistente "Estándar" en lugar de "DannysLibrary") y luego ejecuté este comando desde la máquina de Windows usando PuTTY, y X se cerró en la máquina remota, y La variable DISPLAY no se configuró, y ... bueno, en cualquier caso, no hay forma de que OOo encuentre X11 para conectarse.
$ openoffice.org -invisible -headless "macro:///Standard.Conversion.ConvertWordToPDF(`pwd`/logaritamska.doc)"
Esto funciona y estoy seguro de que esto sería un gran trabajo para cualquier persona que había necesidad de conversión de otro formato a PDF, incluyendo la producción de informes imprimibles de HTML. Al editar la macro, quizás incluso podría obtener OOo para leer directamente de stdin o de su URL de servicio temporal, y salir a un archivo predefinido. La secuencia de comandos en el link es bastante simple una vez que tiene el código elemental para expandir.
Resumen:
- generar informes como XLS o HTML
- los convierten
- aunque es OOo, funciona en máquinas sin cabeza
EDITAR Jun 9 2009 I He intentado implementar un convertidor en línea de esta manera. Debe hacer que PHP se ejecute bajo el mismo usuario bajo el cual creó las macros. Este usuario aparentemente no puede ser www-data. Intenté utilizar suphp, pero por alguna razón no cambió el usuario correctamente (posix_getuid()
siguió devolviendo 33, que es www-data). Voy a editar esto una vez que soluciono esto.
EDITAR 26 de junio de 2009 Supongo que me tomó un tiempo para informar de nuevo. Sí, esto funciona con suphp. Sin embargo, no estoy en posición de mostrarlo en vivo, ya que el único servidor que tengo ejecuta una aplicación web relativamente crítica que no tenía una auditoría de seguridad profesional. Esto significa que una de las cosas de las que dependemos para proteger el backend es que el usuario bajo el que se ejecuta el frontend es un usuario muy poco privilegiado (como www-data). No preguntes :-)
Espero que esto ayude a alguien: sí, la conversión a PDF con OO.o es bastante realista. Incluso hay soporte para llamadas remotas en OO.o pero no estudié eso solo para escribir esto.
¿Quiere decir que quiere un software caro que requiere una gran granja de servidores y tiene la fragilidad del diseño de los espaguetis sin procesar? : D –
Lo siento, se olvidó de mencionar. Lo quería FLOSS – Mez