Generación de Documentos PDF con reportlab en Python

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.

Python
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.

Python
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.

Python
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().

Python
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().

Python
doc.save()

Ejemplo completo

El siguiente ejemplo muestra cómo crear un documento PDF básico con ReportLab:

Python
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.