HTML a PDF: Python
Esta guía proporciona a los desarrolladores de Python instrucciones paso a paso sobre la utilización de la biblioteca IronPDF para convertir contenido HTML en formato PDF de alta calidad.(formato de documento portátil) archivos.
IronPDF es una completa biblioteca de conversión y procesamiento de PDF compatible con varios lenguajes de programación, entre ellos.NET, JavayPython lenguajes de programación. 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.
Si desea consultar otro tutorial sobre cómo convertir HTML a PDF en aplicaciones .NET, consulte lo siguienteaquí.
Visión general
Cómo convertir HTML a PDF en Python
- Instalar la biblioteca Python necesaria para la conversión de HTML a PDF
- Utilice el
RenderHtmlAsPdf
para 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 utilizando el
RenderHtmlFileAsPdf
método - 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
Atención
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 la representación de documentos PDF es la clase ChromePdfRenderer
. Además, la clase PdfDocument
ofrece una serie de funciones de manipulación. IronPDF proporciona métodos fiables para convertir contenidos 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.
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.
Puedecomprar una clave de licencia de nuestra página de licencias o póngase en contacto con nosotros paraobtener 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 su script Python.
Si desea personalizar el nombre y la ubicación del archivo de registro, puede establecer la propiedad LogFilePath
utilizando el siguiente fragmento de código:
# Set a log path
Logger.EnableDebugging = True
Logger.LogFilePath = "Custom.log"
Logger.LoggingMode = Logger.LoggingModes.All
Atención
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 con 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 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 muestra la creación de un documento PDF a partir de HTML que hace referencia a un archivo CSS y a una imagen almacenada 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 comprender mejor cómo utilizar el método RenderHtmlAsPdf
, puede consultareste ejemplo de código o consulte 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 URL de sitios web en documentos PDF, los desarrolladores pueden utilizar el método RenderUrlAsPdf
proporcionado 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 más información, consulteejemplo de código que muestra 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 del mundo real de esta funcionalidad, el siguiente ejemplo de código muestra la conversión de un archivo HTML de factura. Puedes acceder al marcado HTML del factura.
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 conversión de HTML a PDF de IronPDF adentrándose en nuestroEjemplos de código sección.
Leereste ejemplo de código para descubrir cómo personalizar el aspecto de los documentos PDF durante el proceso de conversión.
Aprenda a generar archivos PDF personalizadosencabezados y pies de páginaAjustartamaños de margen ydimensiones de la página, añadir marcas de aguay mucho más.
Además, explorará técnicas paratext extraction, optimizar el tamaño de los archivosy programáticamenteimprimir PDF.