HTML a PDF: Python
Esta guía ofrece a los desarrolladores de Python instrucciones paso a paso sobre cómo utilizar la biblioteca IronPDF para convertir contenido HTML en archivos PDF (formato de documento portátil) de alta calidad.
IronPDF es una biblioteca integral de conversión y procesamiento de PDF que admite múltiples lenguajes de programación, incluidos .NET, Java y Python. Este tutorial se centra específicamente en el uso de IronPDF en scripts Python para convertir contenido HTML, ya sea en forma de archivos o de marcado.
Para un tutorial separado sobre cómo convertir HTML a PDF en aplicaciones .NET, por favor consulte el siguiente aquí.
Visión general
Cómo convertir HTML a PDF en Python

- Instale la biblioteca de Python necesaria para la conversión de HTML a PDF
- Utilice el método
RenderHtmlAsPdf
para convertir una cadena HTML en un documento PDF - Generar archivos PDF directamente desde una URL del sitio web en Python
- Convertir archivos HTML a archivos PDF usando el método
RenderHtmlFileAsPdf
- Guardar el PDF generado como un nuevo archivo
Primeros pasos
Comience a usar IronPDF en su proyecto hoy con una prueba gratuita.
1. Instalación de la biblioteca PDF IronPDF for Python
Para instalar la biblioteca IronPDF for Python, puede utilizar el popular gestor de paquetes, pip. Simplemente ejecute el siguiente comando:
pip install ironpdf
Consejos
IronPDF Python se basa en la biblioteca IronPDF .NET, específicamente .NET 6.0, como su tecnología subyacente. Por lo tanto, es necesario tener instalado el .NET 6.0 SDK en su máquina para poder usar IronPDF Python.
Guía práctica y ejemplos de código
2. Convertir HTML a PDF
En la siguiente sección, profundizaremos en las impresionantes capacidades de renderizado de IronPDF para convertir HTML a PDF.
El componente principal para el renderizado de documentos PDF es la clase ChromePdfRenderer
. Además, la clase PdfDocument
ofrece una variedad de características de manipulación. IronPDF proporciona métodos fiables para convertir contenido HTML en documentos PDF, atendiendo a tres escenarios clave:
- Convertir cadenas/marcas HTML a PDF
- Convertir archivos HTML/zips a PDF
-
Convertir URL en PDF
En esta sección se ofrece una descripción concisa de cada caso de uso, acompañada de recursos complementarios para más detalles.
2.1 Importar el paquete IronPDF
Para importar IronPDF, incluya las siguientes sentencias de importación al principio de los archivos fuente en los que se utilizará IronPDF:
# Import statements for IronPDF Python
from ironpdf import *
2.2. Configurar la clave de licencia (opcional)
IronPDF for Python es de uso gratuito, pero añade una marca de agua de fondo en mosaico a los PDF para los usuarios gratuitos.
Visite la página de licencias para obtener su clave de licencia y disfrutar de PDF sin marcas de agua.
Para generar PDF sin marcas de agua utilizando IronPDF, es necesario proporcionar una clave de licencia válida a la biblioteca. El siguiente fragmento de código muestra cómo configurar la biblioteca con una clave de licencia:
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
Asegúrese de que la clave de licencia está configurada antes de generar archivos PDF o modificar su contenido. Se recomienda llamar al método LicenseKey
antes de cualquier otra línea de código.
Puede comprar una clave de licencia desde nuestra página de licencias o contactarnos para obtener una clave de licencia de prueba gratuita.
2.3 Establecer la ubicación del archivo de registro (opcional)
IronPDF puede generar mensajes de registro en un archivo de texto llamado Default.log en el mismo directorio que tu script de Python.
Si deseas personalizar el nombre y la ubicación del archivo de registro, puedes establecer la propiedad LogFilePath
utilizando el fragmento de código a continuación:
# Set a log path
Logger.EnableDebugging = True
Logger.LogFilePath = "Custom.log"
Logger.LoggingMode = Logger.LoggingModes.All
[{i:(Debe llamarse a Logger.LogFilePath
antes de utilizar cualquier método de conversión y manipulación de PDF.
2.4. Crear un PDF a partir de una cadena HTML
El método RenderHtmlAsPdf
convierte una cadena HTML en un documento en formato PDF.
El siguiente fragmento de código muestra cómo generar un archivo PDF a partir de una cadena HTML con un único elemento de encabezado:
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello from IronPDF!</h1>")
# Export to a file or Stream
pdf.SaveAs("output.pdf")
El método RenderHtmlAsPdf
procesa HTML, CSS y JavaScript de la misma manera que lo hacen los navegadores modernos, asegurando un renderizado preciso del contenido. Esta función permite a los ingenieros de software crear archivos PDF muy parecidos a los de los navegadores web.
Además, el método RenderHtmlAsPdf
puede manejar recursos externos como imágenes, hojas de estilo y scripts ubicados en carpetas locales o de red. El siguiente ejemplo demuestra la creación de un documento PDF a partir de HTML que hace referencia a un archivo CSS y a una imagen almacenados en una carpeta assets:
from ironpdf import *
html = """
<html>
<head>
<title>Hello world!</title>
<link rel='stylesheet' href='assets/style.css'>
</head>
<body>
<h1>Hello from IronPDF!</h1>
<a href="https://ironpdf.com/python/"><img src='assets/logo.png' /></a>
</body>
</html>
"""
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
El resultado del código anterior se muestra en la siguiente imagen.
Además, los desarrolladores tienen la opción de proporcionar un segundo argumento al método RenderHtmlAsPdf
, lo que les permite especificar una ruta base para referenciar activos web. Esta ruta puede apuntar a un directorio local del sistema de archivos o incluso a una ruta URL.
Para obtener una mejor comprensión de cómo usar el método RenderHtmlAsPdf
, puedes consultar este ejemplo de código o revisar las páginas de Referencia de la API para obtener información más detallada.
2.5. Crear un PDF a partir de una URL
Para convertir una URL de sitio web en documentos PDF, los desarrolladores pueden utilizar el método RenderUrlAsPdf
provisto por IronPDF.
He aquí un ejemplo que muestra cómo convertir un artículo de Wikipedia en contenido PDF.
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a URL or local file path
pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
# Export to a file or Stream
pdf.SaveAs("url.pdf")
A continuación se muestra el formato de archivo PDF generado.
Para obtener más información, puede consultar el ejemplo de código que demuestra cómo convertir una página web en PDF.
2.6. Creación de un PDF a partir de un archivo HTML
IronPDF permite convertir archivos HTML a PDF y almacenarlos en un sistema de archivos local. Convierte directamente el contenido HTML en su equivalente en formato PDF.
Para una demostración en el mundo real de esta funcionalidad, el siguiente ejemplo de código muestra la conversión de un archivo HTML de factura. Puede acceder al marcado HTML de la [factura](https://codepen.io/tjoen/pen/wvgvLX" target="_blank" rel="nofollow noopener noreferrer).
Este marcado HTML se proporciona para su comodidad:
<html>
<head>
<meta charset="utf-8">
<title>Invoice</title>
<link rel="stylesheet" href="style.css">
<link rel="license" href="https://www.opensource.org/licenses/mit-license/">
<script src="script.js"></script>
</head>
<body>
<header>
<h1>Invoice</h1>
<address contenteditable>
<p>Jonathan Neal</p>
<p>101 E. Chapman Ave<br>Orange, CA 92866</p>
<p>(800) 555-1234</p>
</address>
<span><img alt="" src="http://www.jonathantneal.com/examples/invoice/logo.png"><input type="file" accept="image/*"></span>
</header>
<article>
<h1>Recipient</h1>
<address contenteditable>
<p>Some Company<br>c/o Some Guy</p>
</address>
<table class="meta">
<tr>
<th><span contenteditable>Invoice #</span></th>
<td><span contenteditable>101138</span></td>
</tr>
<tr>
<th><span contenteditable>Date</span></th>
<td><span contenteditable>January 1, 2012</span></td>
</tr>
<tr>
<th><span contenteditable>Amount Due</span></th>
<td><span id="prefix" contenteditable>$</span><span>600.00</span></td>
</tr>
</table>
<table class="inventory">
<thead>
<tr>
<th><span contenteditable>Item</span></th>
<th><span contenteditable>Description</span></th>
<th><span contenteditable>Rate</span></th>
<th><span contenteditable>Quantity</span></th>
<th><span contenteditable>Price</span></th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="cut">-</a><span contenteditable>Front End Consultation</span></td>
<td><span contenteditable>Experience Review</span></td>
<td><span data-prefix>$</span><span contenteditable>150.00</span></td>
<td><span contenteditable>4</span></td>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
</tbody>
</table>
<a class="add">+</a>
<table class="balance">
<tr>
<th><span contenteditable>Total</span></th>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
<tr>
<th><span contenteditable>Amount Paid</span></th>
<td><span data-prefix>$</span><span contenteditable>0.00</span></td>
</tr>
<tr>
<th><span contenteditable>Balance Due</span></th>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
</table>
</article>
<aside>
<h1><span contenteditable>Additional Notes</span></h1>
<div contenteditable>
<p>A finance charge of 1.5% will be made on unpaid balances after 30 days.</p>
</div>
</aside>
</body>
</html>
<html>
<head>
<meta charset="utf-8">
<title>Invoice</title>
<link rel="stylesheet" href="style.css">
<link rel="license" href="https://www.opensource.org/licenses/mit-license/">
<script src="script.js"></script>
</head>
<body>
<header>
<h1>Invoice</h1>
<address contenteditable>
<p>Jonathan Neal</p>
<p>101 E. Chapman Ave<br>Orange, CA 92866</p>
<p>(800) 555-1234</p>
</address>
<span><img alt="" src="http://www.jonathantneal.com/examples/invoice/logo.png"><input type="file" accept="image/*"></span>
</header>
<article>
<h1>Recipient</h1>
<address contenteditable>
<p>Some Company<br>c/o Some Guy</p>
</address>
<table class="meta">
<tr>
<th><span contenteditable>Invoice #</span></th>
<td><span contenteditable>101138</span></td>
</tr>
<tr>
<th><span contenteditable>Date</span></th>
<td><span contenteditable>January 1, 2012</span></td>
</tr>
<tr>
<th><span contenteditable>Amount Due</span></th>
<td><span id="prefix" contenteditable>$</span><span>600.00</span></td>
</tr>
</table>
<table class="inventory">
<thead>
<tr>
<th><span contenteditable>Item</span></th>
<th><span contenteditable>Description</span></th>
<th><span contenteditable>Rate</span></th>
<th><span contenteditable>Quantity</span></th>
<th><span contenteditable>Price</span></th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="cut">-</a><span contenteditable>Front End Consultation</span></td>
<td><span contenteditable>Experience Review</span></td>
<td><span data-prefix>$</span><span contenteditable>150.00</span></td>
<td><span contenteditable>4</span></td>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
</tbody>
</table>
<a class="add">+</a>
<table class="balance">
<tr>
<th><span contenteditable>Total</span></th>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
<tr>
<th><span contenteditable>Amount Paid</span></th>
<td><span data-prefix>$</span><span contenteditable>0.00</span></td>
</tr>
<tr>
<th><span contenteditable>Balance Due</span></th>
<td><span data-prefix>$</span><span>600.00</span></td>
</tr>
</table>
</article>
<aside>
<h1><span contenteditable>Additional Notes</span></h1>
<div contenteditable>
<p>A finance charge of 1.5% will be made on unpaid balances after 30 days.</p>
</div>
</aside>
</body>
</html>
Supongamos que tenemos un archivo HTML local junto con sus archivos CSS y JavaScript asociados guardados en una carpeta llamada "facturas", podemos utilizar IronPDF para convertir el archivo HTML de muestra a PDF con el siguiente código Python:
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from an existing HTML file using Python
pdf = renderer.RenderHtmlFileAsPdf("invoices/TestInvoice1.html")
# Export to a file or Stream
pdf.SaveAs("htmlfile_to_pdf.pdf")
De forma similar a la conversión de cadenas HTML a PDF, IronPDF resuelve automáticamente las URL relativas en el archivo HTML de muestra, garantizando que cualquier hoja de estilo y secuencia de comandos a los que se haga referencia se aplique correctamente al documento PDF resultante. Esto garantiza que el aspecto visual de la página web se captura con precisión en el archivo PDF.
3. Lecturas complementarias
Explore las amplias capacidades de renderizado de HTML a PDF de IronPDF explorando nuestra sección de Ejemplos de Código.
-
Lea este ejemplo de código para descubrir cómo personalizar la apariencia de los documentos PDF durante el proceso de conversión.
-
Aprenda a generar archivos PDF con encabezados y pies de página personalizados, ajustar los tamaños de los márgenes y las dimensiones de las páginas, añadir marcas de agua, y más.
-
Además, explore técnicas para extraer texto, optimizar tamaños de archivos e imprimir PDFs programáticamente.