HTML a PDF: Python
Esta guía proporciona a los desarrolladores de Python instrucciones paso a paso sobre cómo utilizar la biblioteca de IronPDF para convertir contenido HTML en archivos PDF de alta calidad (formato de documento portátil).
IronPDF es una biblioteca de procesamiento y conversión de PDF completa que admite múltiples lenguajes de programación, incluidos los lenguajes de programación .NET, Java y Python. Este tutorial se centra específicamente en el uso de IronPDF en scripts de Python para convertir contenido HTML, ya sea en forma de archivos o marcados.
Un tutorial separado para convertir HTML en PDF en aplicaciones .NET también está disponible.
Resumen
Cómo Convertir HTML A PDF en Python

- Instale la biblioteca Python necesaria para la conversión de HTML a PDF
- Utilizar el método
RenderHtmlAsPdfpara convertir una cadena HTML en un documento PDF - Generar archivos PDF directamente desde la URL de un sitio web en Python
- Convertir archivos HTML en archivos PDF mediante el método
RenderHtmlFileAsPdf - Guarde el PDF generado como un archivo nuevo
Empezando
1. Instalación de la biblioteca PDF IronPDF for Python
Para instalar la biblioteca de IronPDF para Python, puedes usar el popular gestor de paquetes, pip. Simplemente ejecuta el siguiente comando:
pip install ironpdf
==2023.x.x. Por ejemplo, puede ejecutar el comando:pip install ironpdf==2023.x.xpip install ironpdf==2023.x.xGuía práctica y ejemplos de código
2. Convertir HTML a PDF
En la siguiente sección, profundizaremos en las impresionantes capacidades de renderización de IronPDF para convertir HTML a PDF.
El componente principal para la renderización de documentos PDF es la clase ChromePdfRenderer. Además, la clase PdfDocument ofrece una gama 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/markup HTML a PDF
- Convertir archivos/zips HTML a PDF
- Convertir URLs a PDF
Esta sección proporcionará una visión general concisa de cada caso de uso, acompañada de recursos adicionales para más detalles.
2.1 Importar el paquete IronPDF
Para importar IronPDF, incluye la siguiente declaración de importación al principio de los archivos fuente donde se utilizará IronPDF:
# Import statement for IronPDF for Python
from ironpdf import *# Import statement for IronPDF for Python
from ironpdf import *2.2 Establecer la clave de licencia (opcional)
IronPDF para Python es gratuito para usar, pero agrega una marca de agua de fondo en mosaico a los PDFs para los usuarios gratuitos.
Visite licensing page para obtener su clave de licencia y disfrutar de un PDF sin marcas de agua.
Para generar PDFs sin marcas de agua usando IronPDF, es necesario proporcionar una clave de licencia válida a la biblioteca. El siguiente fragmento de código demuestra cómo configurar la biblioteca con una clave de licencia:
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"Asegúrate 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. Puedes comprar una clave de licencia en 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 configurar la propiedad LogFilePath usando el fragmento de código a continuación:
# Set a log path
Logger.EnableDebugging = True
Logger.LogFilePath = "Custom.log"
Logger.LoggingMode = Logger.LoggingModes.All# Set a log path
Logger.EnableDebugging = True
Logger.LogFilePath = "Custom.log"
Logger.LoggingMode = Logger.LoggingModes.AllLogger.LogFilePath debe ser llamado antes de usar cualquier método de conversión y manipulación de PDFs.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 fragmento de código a continuación demuestra cómo generar un archivo PDF a partir de una cadena HTML con un solo 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")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 del mismo modo que lo hacen los navegadores modernos, lo que garantiza una representación precisa 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 referencia un archivo CSS y 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")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")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 hacer referencia a los 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 referirte a este ejemplo de código o consultar las páginas de Referencia de API para obtener más información 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 proporcionado por IronPDF.
He aquí un ejemplo que demuestra la conversión de 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")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")Para obtener más información, puede consultar un ejemplo de código que demuestra cómo convertir una página web en un PDF.
2.6 Crear un PDF a partir de un archivo HTML
IronPDF proporciona la capacidad de convertir archivos HTML a PDF y almacenarlos en un sistema de archivos local. Directamente renderiza el contenido HTML en su formato PDF equivalente.
For a real-world demonstration of this functionality, the following code example showcases the conversion of an invoice HTML file. You can access the HTML markup of the invoice.
Este marcado HTML se proporciona para tu conveniencia:
<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 usar IronPDF para convertir el archivo HTML de muestra a PDF con el siguiente código Python:
from ironpdf import *
# 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")from ironpdf import *
# 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")Similar a la conversión de cadenas HTML a PDF, IronPDF resuelve automáticamente las URLs relativas en el archivo HTML de muestra, asegurando que cualquier hoja de estilo y script referenciado se aplique correctamente al documento PDF resultante. Esto asegura que la apariencia visual de la página web se capture con precisión en el archivo PDF.
3. Lecturas complementarias
Explora las extensas capacidades de renderización HTML a PDF de IronPDF profundizando en nuestra sección de Ejemplos de Código.
- Lee este ejemplo de código para descubrir cómo personalizar la apariencia de los documentos PDF durante el proceso de conversión.
- Aprende cómo generar archivos PDF con encabezados y pies de página personalizados, ajustar tamaños de margen y dimensiones de página, agregar marcas de agua, y más.
- Además, explora técnicas para extraer texto, optimizar tamaños de archivo, e imprimiendo programáticamente PDFs.
Descargue el producto de software.
Preguntas Frecuentes
¿Cómo puedo convertir HTML a PDF usando Python?
Puedes usar el método RenderHtmlAsPdf de IronPDF para convertir cadenas HTML en documentos PDF en Python. Este método asegura que el HTML, incluidos CSS y JavaScript, se presenten con precisión en un PDF de alta calidad.
¿Qué biblioteca soporta la conversión de HTML a PDF en Python?
IronPDF es una potente biblioteca que soporta la conversión de HTML a PDF en Python. Proporciona varios métodos para convertir cadenas HTML, URLs y archivos en documentos PDF mientras conserva el formato.
¿Cómo instalo IronPDF para la conversión de HTML a PDF en Python?
Para instalar IronPDF para Python, usa el comando pip install ironpdf en tu terminal. Nota que necesitas tener el SDK de .NET 6.0 instalado, ya que IronPDF depende de él.
¿Puedo convertir una URL de una página web a PDF en Python?
Sí, puedes usar el método RenderUrlAsPdf de IronPDF para convertir una URL de una página web en un documento PDF. Esta característica te permite capturar y convertir el contenido de páginas web en vivo directamente.
¿Cómo maneja IronPDF los recursos externos durante la conversión?
IronPDF puede procesar archivos HTML que incluyen recursos externos como imágenes, hojas de estilo y scripts. Resuelve URLs relativas para asegurar que estos recursos se incorporen correctamente en el PDF.
¿Es posible personalizar encabezados y pies de página en PDFs usando Python?
Sí, IronPDF te permite agregar encabezados y pies de página personalizados a tus documentos PDF. Esto se puede hacer ajustando las propiedades del PdfDocument para satisfacer tus necesidades específicas de formato.
¿Cómo puedo eliminar marcas de agua de los PDFs creados con IronPDF?
Para eliminar marcas de agua de los PDFs generados por IronPDF, necesitas configurar una clave de licencia válida antes de procesar el PDF. Esto asegura que los PDFs se creen sin marcas de agua predeterminadas.
¿Cuáles son algunas funciones avanzadas de IronPDF para la conversión de HTML a PDF?
IronPDF ofrece funciones avanzadas como configurar márgenes de página personalizados, ajustar dimensiones, agregar marcas de agua, optimizar tamaños de archivo y extraer texto. Estas características mejoran la flexibilidad y utilidad de la biblioteca.
¿Dónde puedo encontrar ejemplos de uso de IronPDF para la conversión de HTML a PDF?
Puedes encontrar varios ejemplos y fragmentos de código detallados en la sección 'Code Examples' del sitio web de IronPDF, que proporciona información sobre cómo usar efectivamente las funciones de IronPDF.
¿Cuál es la clase principal utilizada en IronPDF para renderizar PDFs?
La clase ChromePdfRenderer es la clase principal utilizada en IronPDF para renderizar PDFs. Proporciona métodos fiables para convertir HTML, manejar recursos externos y asegurar una representación precisa similar a la de los navegadores modernos.
¿IronPDF es compatible con .NET 10?
Sí, IronPDF es totalmente compatible con .NET 10, al igual que con versiones anteriores como .NET 6, 7, 8 y 9. Funciona de inmediato con proyectos .NET 10, independientemente de la plataforma (Windows, Linux, etc.) y admite la última pila de API sin necesidad de soluciones especiales.










