Utilizar plantilla de procesador de texto LibreOffice desde SIU Toba

Saludos. Quisiera consultarles respecto a la posibilidad de pasar como parámetros desde toba hacia una plantilla o documento de procesador de textos de LibreOffice u OpenOffice. Básicamente necesito completar los datos de una plantilla que esta en este formato desde el sistema de información desarrollado usando SIU Toba, de manera dinámica desde el sistema de acuerdo al registro seleccionado. Por el momento pude encontrar la librería tbsOOo, la cual pude hacer funcionar como ejemplo directamente en la carpeta www de apache, el problema es que no puedo conectarla con el Toba, ni tampoco puedo pasarle los parametros que requiero en la plantilla, la página del proyecto es http://www.tinybutstrong.com/, me interesaría saber si alguien implementó algo similar con esta u otra librería para que pueda darme una mano. Desde ya muchas gracias.

Las librerias nuevas, para cobinar con toba se deben ubicar donde se instalo el toba, por ejemplo:

En c:/proyectos/toba_2_0/php/3ros

y en el php incluir el permiso respectivo, por ejemplo:

require_once(toba_dir() . ‘/php/3ros/ChartDirector/lib/phpchartdir.php’);

No se si es lo que buscas

Saludos jorozco, gracias por la respuesta, en realidad lo que busco es enviar los datos dinámicamente desde Toba, de acuerdo a lo que cargo en el formulario incrustado en mi ci, hacia una plantilla de OpenOffice, en la que defino un texto de fondo y los lugares donde deben ir insertados estos “datos enviados desde Toba”. Comente lo de la librería tbsOOo para ubicar el tema simplemente ya que por ahí alguien tiene alguna experiencia con esta librería. En realidad lo que me interesa es enviar mis datos a una plantilla de OpenOffice o LibreOffice, con cualquier librería. Desde ya muchas gracias.

Hola Facundo ,

por lo que alcance a ver parece bastante sencillo trabajar con TBS, en particular en tu caso lo que harias es recibir los datos en el evento de modificacion del formulario y luego mediante un evento que dispare un servicio particular obtendria la plantilla de OO. Los datos obtenidos los guardaria en una variable de clase s__xxx para que se persistan.

Dentro del metodo que atiende el servicio podes incluir cualquier codigo que necesites para operar con clases de terceros, lo unico que necesitas es que la clase se encuentre dentro del include path y hacer el include_once correspondiente. Cualquier duda seguimos con el tema con algun ejemplo mas puntual.

Saludos

PD: Fijate que en el proyecto toba_referencia hay una operacion que crea manualmente un PDF.

Saludos Richard. Primero intenté hacerlo de la forma que mencionas en cuanto a las variables globales, pero por alguna razón no me las reconocía como tales. Lo que hice fue ocupar la sentencia global de php y pasarle el nombre tal cual lo tengo en la plantilla. Pude hacerlo funcionar de directa digamos, con el archivo directamente puesto en la carpeta de publicación de Apache mi problema sigue siendo conectarlo desde Toba. Teniendo en cuenta lo que comenta, respecto al ejemplo de creación manual de pdf en “toba_referencia”, seguí la estructura, solucionando con el global de php el tema de variables, mi problema es que sigo sin poder ver la plantilla. He tomado el ejemplo que trae la libreria para hacerlo funcionar, adjunto el archivo de imagen del resultado que me arroja en el navegador, una imagen con el código en php de la operación (al que hago referencia directamente en la operacion como archivo plano) y una copia de la plantilla que estoy intentando cargar. Desde ya les agradezco el tiempo y quedo a la espera de cualquier aporte.


Hola Facundo,

Yo no te mencione variables globales, sino variables de clase y lo hice porque asumi que ibas a usar esto dentro de un CI, si lo vas a usar desde un PHP plano entonces con usar variables comunes te deberia alcanzar segun los ejemplos que vi.

He tomado el ejemplo que trae la libreria para hacerlo funcionar, adjunto el archivo de imagen del resultado que me arroja en el navegador, una imagen con el código en php de la operación (al que hago referencia directamente en la operacion como archivo plano) y una copia de la plantilla que estoy intentando cargar. Desde ya les agradezco el tiempo y quedo a la espera de cualquier aporte.

Facundo, el codigo que me pasas guarda en un archivo el merge y luego intenta enviarlo al cliente, sin embargo por lo que veo no se sacan los headers correctos ya que lo esta mostrando como si fuera parte del HTML.
El codigo es bastante simple, de todas maneras fijate si no hay algun metodo en la API que te permita setear valores especificos a porciones de la plantilla, porque sino vas a tener una lista de variables todas declaradas como globales, lo cual no me parece muy bueno.

Saludos

Saludos Richard. He intentado lo del php plano para armarlo siguiendo el ejemplo del toba_referencia, si la recomendación es armarlo desde un ci lo hago, no hay problema. El problema es que no consigo que me interprete ese archivo que genera, en realidad lo genera pero no puedo hacer que me lo descargue; yo comente a propósito las dos lineas siguientes al comentario //display en la imagen de codigo fuente donde se hace referencia al header, si las descomento (como debería ser y tal cual esta en el ejemplo) me arroja un mensaje de error en donde me dice que el header ya ha sido enviado, adjunto la captura de la imagen resultado con el mensaje de error. Quisiera saber si hay alguna forma de solucionar este inconveniente. Desde ya muchas gracias por el tiempo.


Hola Facundo,

por eso te comentaba en el post anterior que no se estaban sacando los headers correctos, fijate en el item, en el punto que dice Tipo de pagina hay un valor ‘sin salida’ que es lo que necesitarias vos.

Lo que si vas a tener que hacer, es enviar manualmente los headers para que te interprete el browser el tipo de archivo.

Saludos