
Saludos a los lectores de LibreOffice Cuba. En el día a día es común que nos rompamos la cabeza buscando una librería que nos facilite el trabajo a la hora de hacer los reportes imprimibles de los sistemas que desarrollamos. Soy un amante de las tecnologías libres y python es el lenguaje de programación que más utilizo, aquí les dejo una recomendación.
Hace unos días atrás se me dio la tarea en la empresa donde trabajo de realizar un pequeño sistema que dentro de las funcionalidades principales era necesario imprimir un reporte en una plantilla preimpresa en una impresora de matricial.
Traté de utilizar una librería para generar un pdf, pero me fue casi imposible hacer coincidir los valores a imprimir con los escaques en la plantilla preimpresa. Después de hacer dos o tres pruebas me convencí de que tenía que buscar otra solución. Además de esto al realizar las pruebas de impresión el texto era casi ilegible ya que para el trabajo se utilizaría una impresora matricial o de cinta como se conoce popularmente.
Preguntando a desarrolladores con más experiencia, un amigo me recomendó utilizar py3o.template <https://pypi.org/project/py3o.template/>, que solucionaba los dos problemas con que me encontraba actualmente.
Según la página del proyecto, “py3o es una solución elegante y escalable para diseñar informes utilizando LibreOffice” en el momento que leí esto supe que era lo que estaba buscando.
De forma más específica py3o.template es el componente que se ocupa de
fusionar el conjunto de datos con un documento de LibreOffice/OpenOffice que le sirve de plantilla para generar el informe correspondiente.
Otras de las ventajas de esta librería python es que independiente de la plataforma y no requiere que el propio LibreOffice/OpenOffice esté instalado para generar el archivo ODF haciendo evidente otras de las ventajas del uso de los estándares abiertos.
Empecemos con un ejemplo sencillo que todo aquellos que estamos en el mundo del desarrollo de software hacemos al comenzar. Ante de todo debemos instalar la librería y sus dependencias.
Primero creamos el archivo “hola_mundo.py” con el contenido siguiente
from py3o.template import Template # creando la platilla para generar el informe t = Template("hola_mundo_template.odt", "hola_mundo_output.odt") # clase item auxiliar necesaria para pasar los parametros a la libreria py3o class Item(object): pass # creando el objeto document = Item() # seteando los valores document.hola = 'Hola mundo' # conviertiendo los valores a dict data = dict(document=document) # generando el informe con los valores anteriores t.render(data)
Después creamos la plantilla en LibreOffice con el nombre “hola_mundo_template.odt”, dentro del documento insertamos un campo de usuario (Ctrl+F2) en la pestaña “Variables” con el nombre py3o.document.hola como se muestra en la imagen siguiente.
Después de realizar estos pasos guardar todo y ejecutar “hola_mundo.py” para generar el informe.
Este es un ejemplo muy sencillo para probar de forma básica como generar informes imprimibles utilizando Py3o.template para ganar en conocimiento y entrar en más detalles les recomiendo visitar la página en Readthedocs
<https://py3otemplate.readthedocs.io/en/latest/> y para tener otros ejemplos y los últimos cambios visitar el repositorio en Github <https://github.com/faide/py3o.template>.
Esta librería permite utilizar LibreOffice como editor de reportes ganando en exactitud y reduciendo el tiempo de desarrollo. Si bien es cierto que quizás no sirva para todos los reportes que hacemos es una buena opción que siempre se debe tener cuenta.
Autores:
Ing. Fidel Jimenez Sanzano
Ing. Yoannis Dominguez Carrero


En este repositorio les dejo otro ejemplo.
Saludos
WOW, muchas gracias por esta informacion, me sera de mucha ayuda, saludos desde Republica Dominicana.
Estimado Carlos Parra,
Un Saludo desde Venezuela, estoy interesado en material python -libreoffice.