Generación de Documentos PDF con reportlab en Python
Introducción
ReportLab es una librería de código abierto para crear documentos PDF desde Python. Se trata de una librería muy extensa y con muchas funcionalidades, desde pequeños textos y figuras geométricas a grandes gráficos e ilustraciones, todo ello puede ser incluido dentro de un documento PDF.
Este tutorial te enseñará a crear documentos PDF básicos con ReportLab. Al finalizar, serás capaz de crear documentos PDF con texto, imágenes y figuras geométricas.
Requisitos
Para seguir este tutorial, necesitarás:
- Python 3
- La librería ReportLab
Instalación de ReportLab
Para instalar ReportLab, abre una terminal y ejecuta el siguiente comando:
pip install reportlab
Creación de un documento PDF
Para crear un documento PDF, primero necesitamos crear una instancia de la clase Document. Esta clase representa el documento PDF completo.
from reportlab.pdfgen import canvas
doc = canvas.Canvas("documento.pdf")
Una vez que tenemos una instancia de Document, podemos comenzar a agregar contenido al documento.
Agregar texto
Para agregar texto a un documento PDF, podemos usar el método drawString(). Este método toma como argumentos la posición del texto en la página, el texto en sí y la fuente a usar.
doc.drawString(100, 100, "Este es un texto")
Agregar imágenes
Para agregar imágenes a un documento PDF, podemos usar el método drawImage(). Este método toma como argumentos la ruta de la imagen a insertar, la posición de la imagen en la página y el tamaño de la imagen.
from reportlab.lib.pagesizes import letter
doc.drawImage("imagen.png", 200, 200, letter.width, letter.height)
Agregar figuras geométricas
Para agregar figuras geométricas a un documento PDF, podemos usar los métodos de la clase canvas. Por ejemplo, para agregar un círculo, podemos usar el método drawCircle().
doc.drawCircle(100, 100, 50)
Guardar el documento PDF
Una vez que hayamos agregado todo el contenido que queremos al documento, podemos guardarlo usando el método save().
doc.save()
Ejemplo completo
El siguiente ejemplo muestra cómo crear un documento PDF básico con ReportLab:
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
# Crea un nuevo documento PDF
doc = canvas.Canvas("documento.pdf")
# Agrega texto a la página
doc.drawString(100, 100, "Este es un texto")
# Agrega una imagen a la página
doc.drawImage("imagen.png", 200, 200, letter.width, letter.height)
# Agrega un círculo a la página
doc.drawCircle(100, 100, 50)
# Guarda el documento PDF
doc.save()
Ejercicios
- Modifica el ejemplo anterior para agregar más texto, imágenes y figuras geométricas.
- Crea un documento PDF que contenga una tabla de datos.
- Crea un documento PDF que contenga un gráfico.
Conclusión
ReportLab es una herramienta poderosa para crear documentos PDF desde Python. Con un poco de práctica, podrás crear documentos PDF personalizados para tus necesidades.


