Generación de PDFs con pdfkit en Python
pdfkit es una librería Python que permite generar archivos PDF a partir de código HTML. Es una herramienta muy versátil que puede utilizarse para crear documentos PDF de cualquier tipo, desde informes sencillos hasta documentos complejos con imágenes, tablas y gráficos.
Requisitos previos
Para utilizar pdfkit, necesitas tener instalado Python 3 y la librería wkhtmltopdf. wkhtmltopdf es una herramienta que convierte HTML a PDF. Puedes instalarla en tu sistema siguiendo las instrucciones que se proporcionan en su página web.
Instalación de pdfkit
Para instalar pdfkit, puedes utilizar el gestor de paquetes pip:
pip install pdfkit
Creación de un PDF sencillo
Para crear un PDF sencillo, puedes utilizar la función from_string()
de pdfkit. Esta función recibe como parámetro un string que contiene el código HTML del documento PDF.
import pdfkit
html = """
<html>
<head>
<title>Mi primer PDF</title>
</head>
<body>
<h1>Este es mi primer PDF</h1>
<p>Este es un documento PDF sencillo creado con Python.</p>
</body>
</html>
"""
pdfkit.from_string(html, "mi_primer_pdf.pdf")
Este código creará un documento PDF llamado mi_primer_pdf.pdf
con el siguiente contenido:
Este es mi primer PDF
Este es un documento PDF sencillo creado con Python.
Creación de un PDF con formato
Para añadir formato a un PDF, puedes utilizar CSS. Puedes incluir el código CSS en un archivo CSS externo o directamente en el código HTML.
En el siguiente ejemplo, se utiliza un archivo CSS externo para definir el formato del documento PDF:
import pdfkit
html = """
<html>
<head>
<title>Mi primer PDF</title>
<link rel="stylesheet" href="estilo.css">
</head>
<body>
<h1>Este es mi primer PDF</h1>
<p>Este es un documento PDF sencillo creado con Python.</p>
</body>
</html>
"""
css = """
h1 {
font-size: 2em;
color: red;
}
p {
font-size: 1em;
color: blue;
}
"""
with open("estilo.css", "w") as f:
f.write(css)
pdfkit.from_string(html, "mi_primer_pdf.pdf")
Este código creará un documento PDF con el siguiente contenido:
**Este es mi primer PDF**
Este es un documento PDF sencillo creado con Python.
Creación de un PDF con datos dinámicos
Para añadir datos dinámicos a un PDF, puedes utilizar la función from_url()
de pdfkit. Esta función recibe como parámetro una URL que contiene el código HTML del documento PDF.
En el siguiente ejemplo, se utiliza la función render()
de la librería Jinja2 para generar un documento PDF con datos dinámicos:
import pdfkit
import jinja2
template_path = "mi_plantilla.html"
with open(template_path, "r") as f:
template = jinja2.Template(f.read())
data = {
"nombre": "Juan Pérez",
"apellidos": "García López",
"fecha_nacimiento": "1980-01-01"
}
pdf = pdfkit.from_url(template.render(data), "mi_pdf.pdf")
Este código creará un documento PDF con el siguiente contenido:
Nombre: Juan Pérez
Apellidos: García López
Fecha de nacimiento: 1980-01-01
Conclusiones
pdfkit es una herramienta muy versátil que permite crear archivos PDF de cualquier tipo. Es una herramienta sencilla de utilizar y que puede ser utilizada por desarrolladores de cualquier nivel de experiencia.