Informe imprimible utilizando Python, Py3o y LibreOffice

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



El autor de este artículo es Carlos Parra Zaldivar y forma parte de Libreoffice Cuba desde el 6 diciembre, 2013. Nací en la ciudad de Holguín, en el año 1961, estudié la secundaria y el preuniversitario en la Escuela Militar "Camilo Cienfuegos". Me gradué como Licenciado en Física y Astronomía en el año 1985 y comencé mi vida laboral en el IPVCE "José Martí Pérez" de la ciudad de Holguín, impartiendo la asignatura de Física, en el año 1986 comienzan mis incursiones en el mundo de la informática, en el año 1997 presenté un Libro de Física con aplicaciones informáticas en el Evento Internacional de Pedagogía ´97. Desde ese año me desempeño como informático y trabajo desde entonces en la Dirección Provincial de Servicios Comunales en la ciudad de Holguín. Desde el 1ro. de Enero del 2015 soy Miembro de The Document Foundation.

3 Comentarios en el artículo “Informe imprimible utilizando Python, Py3o y LibreOffice”

Dejar un comentario en Fidel