Crear PDF con Texto Imagenes ReportLab Python

Reportlab PDF Toolkit es una librería open-source para crear y manejar documentos y reportes PDF avanzados con el lenguaje Python.

Reportlab PDF Toolkit es la librería open-source líder en la industria para la generación dinámica de documentos PDF utilizando el lenguaje de programación Python. Es la herramienta perfecta para desarrolladores que buscan automatizar la creación de facturas, reportes complejos, gráficos vectoriales y documentos corporativos con precisión milimétrica.

Para instalar Reportlab PDf toolkit vamos a usar el siguiente comando:

pip install reportlab

Una vez instalado reportlap, lo podremos importar desde un script en python.

✨ Porque usar ReportLab

  • 🚀 Generación Dinámica: Crea documentos desde cero en tiempo real basados en datos de bases de datos o entradas de usuario.

  • 📊 Soporte de Gráficos: Incluye un motor robusto para renderizar tablas, diagramas y gráficos vectoriales directamente en el PDF.

  • 🖋️ Control Tipográfico: Soporte completo para fuentes TrueType, Type1 y manejo avanzado de layouts de texto.

  • 🛠️ Extensibilidad: Capacidad de manejar desde documentos de una sola página hasta reportes de cientos de folios con alta eficiencia de memoria.

Código

El siguiente código sirve para crear un documento pdf, agregar 2 párrafos y una imagen.

# 1. Importamos la librería Canvas del paquete Reportlab
from reportlab.pdfgen import canvas

# 2. Inicializamos el documento PDF (Nombre del archivo de salida)
c = canvas.Canvas('mypdf.pdf')

# --- SECCIÓN DE TÍTULO ---
# Asignamos la fuente 'Helvetica' con un tamaño de 20 para el encabezado
c.setFont('Helvetica', 20)

# Dibujamos el texto en las coordenadas (X=25, Y=800)
# Nota: Reportlab usa el sistema de coordenadas desde la esquina inferior izquierda
c.drawString(25, 800, "¡Crear PDF con Reportlab en Python!")

# --- SECCIÓN DE PÁRRAFO ---
# Cambiamos el tamaño de fuente a 12 para contenido estándar
c.setFont('Helvetica', 12)

# Dibujamos el texto del párrafo debajo del título (Y=780)
c.drawString(25, 780, "Este es un ejemplo de párrafo en un PDF con la librería Reportlab y Python.")

# --- SECCIÓN DE IMAGEN ---
# Insertamos una imagen especificando: (Ruta, X, Y, Ancho, Alto)
# Las dimensiones se calculan en puntos (1/72 de pulgada)
try:
    c.drawImage('image.jpg', 25, 480, 480, 270)
except:
    print("Aviso: No se encontró el archivo 'image.jpg', se omitirá la imagen.")

# --- FINALIZACIÓN ---
# Guardamos y cerramos el documento para generar el archivo final
c.save()

print("PDF generado con éxito: mypdf.pdf")

En los comentarios les agregue la explicación de cada linea de código.

💡 Tips para tu tutorial:

  • Coordenadas: Es importante mencionar a tus lectores que Reportlab empieza a contar desde la esquina inferior izquierda $(0,0)$. Por eso, para poner un título arriba, usamos un valor de Y alto (como 800).

  • Fuentes Estándar: Reportlab incluye fuentes base como Helvetica, Times-Roman y Courier sin necesidad de archivos externos.

  • Manejo de Errores: He añadido un pequeño bloque try/except en la imagen, ya que es el error más común cuando el usuario corre el script sin tener la imagen en la misma carpeta.

Tienes que copiar el código y guardarlo con un nombre + extensión .py, ejemplo holapdf.py, ejecutarlo desde una terminal o haciendo doble click sobre el archivo (si tienes activada la opción de ejecutables python).

Tras ejecutarse el script se va a crear el archivo mypdf.pdf con el contenido que especificamos.

Te puede interesar: Conectar Python y Mysql

Resultado

Por ahora eso seria todo amigos, no olviden enviar sus dudas y comentarios.

Saludos

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from Evilnapsis

Subscribe now to keep reading and get access to the full archive.

Continue reading