Biblioteca Python gratuita para la conversión de HTML y CSS a PDF
Biblioteca Python de código abierto que permite generar documentos PDF a partir de HTML. Soporta diseño avanzado de página, renderizado de imágenes y tablas, incorporación de fuentes personalizadas, encabezados/pies de página, etc.
¿Qué es la biblioteca XHTML2PDF?
En el mundo del desarrollo web, la necesidad de generar documentos PDF a partir de contenido HTML es un requisito común. Ya sea para crear facturas, informes o cualquier otro tipo de documento imprimible, contar con una herramienta fiable para manejar esta conversión es crucial. Aquí es donde XHTML2PDF, una poderosa biblioteca de Python de código abierto, viene al rescate. html2pdf (anteriormente conocida como pisa) es una biblioteca puramente Python que transforma HTML (incluyendo XHTML) y CSS en documentos PDF. Está construida sobre el toolkit ReportLab y html5lib, con soporte opcional de PyPDF. Independiente de la plataforma y accesible, permite a los desarrolladores convertir su contenido web en PDFs imprimibles de manera rápida y eficaz.
XHTML2PDF está repleto de funciones que lo convierten en una herramienta versátil para la generación de PDF. Soporta HTML5 y CSS 2.1, integración perfecta con Django, una potente interfaz de línea de comandos, etiquetas personalizadas específicas de PDF, diseño y estilo avanzados de página, mejor soporte para tablas e imágenes, entre otras cosas. Lo que hace que XHTML2PDF sea tan atractivo para los desarrolladores es su simplicidad y flexibilidad. Si sabes cómo escribir HTML y CSS, puedes comenzar a generar PDFs con esta biblioteca en poco tiempo. Es una biblioteca pura de Python, lo que significa que es independiente de la plataforma y puede ejecutarse en cualquier sistema operativo que soporte Python. También es importante estar al tanto de las limitaciones de la biblioteca: no soporta toda la especificación CSS y no ejecuta JavaScript.
Comenzando con XHTML2PDF
XHTML2PDF se puede instalar usando pip, los siguientes comandos instalarán desde una rueda de Python si está disponible para tu plataforma.
Instalar XHTML2PDF mediante pip
pip install xhtml2pdf Clonar repositorio vía GitHub
git clone https://github.com/xhtml2pdf/xhtml2pdf.git También es posible instalarlo manualmente; descarga los archivos de la última versión directamente del repositorio GitHub.
Convertir HTML y CSS a PDF mediante Python
La función principal de la biblioteca de código abierto XHTML2PDF es analizar HTML y CSS (incluidos los estilos en línea) y renderizarlos con precisión en un documento PDF. Soporta un amplio subconjunto de etiquetas HTML y propiedades CSS, lo que permite una gran flexibilidad de diseño. Admite características como salto de página, encabezados y pies de página, márgenes y tamaño de página, incrustar fuentes, entre otras. El siguiente ejemplo sencillo muestra cómo los desarrolladores de software pueden convertir contenido HTML en un archivo PDF mediante código Python.
¿Cómo convertir contenido HTML en un archivo PDF mediante Python?
from xhtml2pdf import pisa
# El contenido HTML a convertir
html_content = """
¡Hola, Mundo!
Este es mi primer PDF generado con XHTML2PDF.
"""
# El nombre del archivo PDF de salida
output_filename = "hello_world.pdf"
# Abrir el archivo de salida en modo binario de escritura
with open(output_filename, "w+b") as pdf_file:
# Create the PDF
pisa_status = pisa.CreatePDF(
html_content, # the HTML to convert
dest=pdf_file) # file handle to receive result
# Verificar si la creación del PDF fue exitosa
if not pisa_status.err:
print(f"Successfully created PDF: {output_filename}")
else:
print(f"Error creating PDF: {pisa_status.err}")
Diseño avanzado de página y soporte de fuentes personalizadas
Con la biblioteca XHTML2PDF, los desarrolladores de software tienen un control detallado sobre el diseño de sus páginas PDF. Pueden definir el tamaño de página, los márgenes y la orientación usando la regla CSS @page. Los desarrolladores también pueden crear encabezados y pies de página personalizados para sus documentos. Además, si necesita usar fuentes específicas en sus PDFs, la biblioteca permite incrustar fuentes personalizadas. Esto es particularmente útil para la marca y para garantizar una tipografía coherente en todos los documentos.
Renderizado de imágenes y tablas PDF mediante la biblioteca Python
La biblioteca de código abierto XHTML2PDF ofrece un soporte robusto para renderizar tablas e imágenes en tus PDFs. Puedes dar estilo a tus tablas usando CSS, y para las imágenes, puedes controlar su tamaño y alineación. La biblioteca puede resolver e incrustar fácilmente y de forma correcta imágenes, fuentes y otros recursos estáticos, lo cual es fundamental para generar PDFs autónomos. Puedes generar automáticamente una tabla de contenidos simplemente añadiendo la etiqueta
Compatibilidad con HTML5 y CSS 2.1
Si estás familiarizado con HTML y CSS, recrear PDFs con estilo se vuelve intuitivo, sin curva de aprendizaje nueva. La biblioteca XHTML2PDF tiene un excelente soporte para los estándares web modernos, incluidos HTML5 y CSS 2.1, con cierto soporte para propiedades CSS 3. Esto significa que puedes usar etiquetas HTML y propiedades CSS conocidas para estructurar y dar estilo a tus documentos PDF, tal como lo harías con una página web.