HTML a PDF en Java
Este tutorial instruye a los desarrolladores de Java sobre cómo usar la biblioteca IronPDF para convertir contenido HTML en documentos PDF (formato de documento portátil) con precisión de píxel.
*IronPDF es un conversor de PDF y una biblioteca de procesamiento de PDF con todas las funciones. IronPDF está disponible para ambos lenguajes de programación .NET y Java. Este tutorial cubre el uso de la biblioteca para convertir contenido HTML (archivos, marcado, etc.) en aplicaciones Java. El tutorial para convertir HTML a PDF en aplicaciones .NET está disponible en el tutorial de HTML a PDF en .NET.
Visión general
Cómo convertir HTML a PDF en Java

- Instalar la biblioteca Java para convertir HTML a PDF
- Convertir una cadena HTML a un documento PDF usando el método
renderHtmlAsPdf
- Generar archivos PDF a partir de la URL de un sitio web en Java
- Convierte archivos HTML a archivos PDF con 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 Java
Hay dos maneras de incorporar la biblioteca IronPDF en un proyecto Java:
-
Añadir IronPDF como dependencia en un proyecto Java configurado con Maven
-
Descargue el archivo JAR IronPDF y añádalo manualmente al classpath del proyecto.
A continuación se describen brevemente ambos métodos de instalación.
Opción 1: Instalar IronPDF como dependencia de Maven
Para instalar IronPDF en un proyecto Java utilizando Maven, añada los siguientes artefactos a la sección de dependencias del archivo pom.xml del proyecto Java.
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>com.ironsoftware</artifactId>
<version>2025.3.6</version>
</dependency>
El primer artefacto hace referencia a la última versión de la biblioteca IronPDF. El segundo artefacto hace referencia a una implementación de [SL4J](https://www.slf4j.org/" target="_blank" rel="nofollow noopener noreferrer). Esta dependencia es necesaria para permitir que el motor de renderizado de IronPDF genere mensajes de registro durante la ejecución. Los ingenieros de software pueden sustituir esta dependencia por otros proveedores de registro (como [Logback](https://logback.qos.ch/" target="_blank" rel="nofollow noopener noreferrer) y [Log4J](https://logging.apache.org/log4j/2.x/" target="_blank" rel="nofollow noreferrer noopener)); u omitirlo por completo si no necesitan o no desean la tala de árboles.
Ejecute el comando mvn install
dentro de un terminal en el directorio raíz del proyecto Java para descargar las bibliotecas mencionadas anteriormente.
Opción 2: Instalar manualmente el JAR de IronPDF
Los desarrolladores que prefieren no usar Maven o cualquier otro sistema de gestión de dependencias necesitarán descargar el archivo JAR de la biblioteca IronPDF (y la implementación opcional de [SL4J](https://mvnrepository.com/artifact/org.slf4j/slf4j-simple" target="_blank" rel="nofollow noopener noreferrer)) y agregarlo manualmente al class path de su proyecto.
Descargue el archivo JAR de IronPDF directamente desde descarga de IronPDF JAR (o desde el Repositorio de Maven).
Guía práctica y ejemplos de código
2. Conversión de HTML a PDF
Esta sección muestra las principales capacidades de renderizado HTML a PDF de IronPDF.
La clase PdfDocument
es el punto de entrada para todas las funciones de renderización y manipulación de documentos PDF de IronPDF. La clase incluye un conjunto de métodos sólidos para convertir documentos HTML a PDF en apoyo de los tres casos de uso siguientes: conversión a partir de cadenas/marcas HTML, conversión a partir de un archivo HTML y conversión a partir de una URL. Esta sección tratará brevemente cada uno de estos casos de uso, con enlaces a contenidos adicionales para recabar más información.
2.1 Importar el paquete IronPDF
Todos los componentes de conversión y procesamiento de IronPDF están contenidos en el paquete com.ironsoftware.ironpdf.
Incluya la siguiente declaración de importación al inicio de los archivos fuente de Java (donde se usará IronPDF) para hacer que estos componentes sean accesibles para el código fuente de la aplicación.
// Import statement for IronPDF for Java
import com.ironsoftware.ironpdf.*;
2.2. Configurar la clave de licencia (opcional)
IronPDF for Java es de uso gratuito. Sin embargo, para los usuarios gratuitos, marcará los documentos PDF con una marca de agua de fondo en mosaico (como se muestra en la imagen a continuación).
Para utilizar IronPDF para generar PDF sin marcas de agua, la biblioteca debe utilizar una clave de licencia válida. La siguiente línea de código configura la biblioteca con una clave de licencia.
// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
La clave de licencia debe establecerse antes de generar archivos PDF o personalizar su contenido. Recomendamos que llame al método setLicenseKey
antes de todas las demás líneas de código.
Compra una clave de licencia desde la página de licencias de IronPDF, o contáctanos para obtener una clave de licencia de prueba gratuita.
2.3 Establecer la ubicación del archivo de registro (opcional)
De forma predeterminada (y suponiendo que hay un proveedor de SLF4J instalado), IronPDF genera mensajes de registro en un archivo de texto llamado IronPdfEngine.log ubicado en el directorio raíz de la aplicación Java.
Para especificar un nombre y una ubicación diferentes para el archivo de registro, utilice el método Settings.setLogPath
:
// Set a log path
Settings.setLogPath(Paths.get("IronPdfEngine.log"));
Por favor, tenga en cuenta: Settings.setLogPath
debe ser llamado 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
PdfDocument.renderHtmlAsPdf
convierte una cadena de contenido HTML en un documento PDF.
El siguiente ejemplo de código utiliza un único elemento de encabezado para generar un nuevo archivo.
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
pdf.saveAs("htmlstring_to_pdf.pdf");
renderHtmlAsPdf
procesa todo el contenido HTML, CSS y JavaScript de la misma manera que los navegadores modernos y compatibles con los estándares pueden hacerlo. Esto ayuda a los ingenieros de software a crear documentos PDF con el mismo aspecto que aparecen en un navegador web.
El método renderHtmlAsPdf
puede obtener imágenes, hojas de estilo y scripts ubicados en carpetas de una computadora o en una unidad de red. El siguiente ejemplo produce un documento PDF a partir de HTML que referencia un archivo CSS y una imagen ubicados en una carpeta assets
:
String 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/java/"><img src='assets/logo.png' /></a></body></html>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
pdf.saveAs("output.pdf");
El resultado del código anterior se muestra en la siguiente imagen.
Un segundo argumento (opcional) para renderHtmlAsPdf
permite a los desarrolladores especificar una ruta base desde la cual referenciar activos web. Esta ruta puede ser un directorio del sistema de archivos local o incluso una ruta URL.
Obtenga más información sobre el método renderHtmlAsPdf
en este ejemplo de código sobre cómo usar HTML para crear un PDF, o léalo en la [página de Referencia de la API para la clase PdfDocument](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#renderHtmlAsPdf(java.lang.String).
2.5. Crear un PDF a partir de una URL
Los desarrolladores pueden convertir páginas web en línea a documentos PDF utilizando el método PdfDocument.renderUrlAsPdf
de IronPDF.
El siguiente ejemplo convierte el artículo de Wikipedia en contenido PDF.
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
A continuación se muestra el formato de archivo PDF generado.
Obtén más información sobre cómo convertir páginas web en contenido PDF a partir de este ejemplo de código sobre cómo convertir una URL a un PDF.
2.6. Creación de un PDF a partir de un archivo HTML
IronPDF también puede convertir un documento HTML almacenado en un sistema de archivos local directamente en su formato PDF equivalente.
El siguiente ejemplo de código utiliza [esta factura como una demostración del mundo real](https://codepen.io/tjoen/pen/wvgvLX" target="_blank" rel="nofollow noopener noreferrer) de lo bien que IronPDF puede convertir archivos HTML.
Para mayor comodidad, reproducimos aquí el código HTML de la factura:
<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 el archivo HTML se ha guardado en una carpeta llamada facturas junto con su archivo CSS y su archivo JavaScript. Podemos utilizar IronPDF para convertir el archivo HTML de la siguiente manera:
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
Al igual que con los ejemplos de conversión de cadenas HTML a PDF, IronPDF resuelve correctamente cualquier URL relativa en un documento HTML a sus rutas correctas en el sistema de archivos. Como resultado, el archivo PDF que produce este ejemplo es capaz de capturar perfectamente las influencias visuales que cualquier hoja de estilos y scripts referenciados tendrían normalmente en una página web.
3. Lecturas complementarias
Sólo hemos arañado la superficie de las capacidades de conversión de HTML a PDF de IronPDF.
Profundice su comprensión de cómo usar el convertidor de HTML a PDF para el desarrollo en Java utilizando los ejemplos de código seleccionados presentados en nuestra sección de Ejemplos de Código.
-
Lea este ejemplo de código para configuraciones de generación de PDF para aprender cómo personalizar la apariencia de un documento PDF durante el proceso de conversión.
-
Generar archivos PDF con encabezados y pies de página personalizados, tamaños de márgenes, dimensiones de página, marcas de agua, y mucho más.
-
Extraer contenido de PDF (extracción de texto de PDFs y extracción de imágenes de PDFs) de documentos, optimizar tamaños de archivo con compresión de PDF e imprimir PDFs programáticamente con capacidades de IronPrint.
Estudie la página de referencia de la API de IronPDF Java sobre la clase
PdfDocument
para obtener un control aún mayor sobre el HTML representado en PDF.
Ver el vídeo tutorial de HTML a PDF
Acceso rápido a tutoriales
Descargar este tutorial como código fuente Java
El código fuente Java HTML a PDF completo de este tutorial está disponible para su descarga gratuita como proyecto IntelliJ comprimido.
DescargarExplore este tutorial en GitHub
El código fuente de este proyecto está disponible en GitHub.
Utilice este código como una manera fácil de poner en marcha en tan sólo unos minutos. El proyecto se guarda como un proyecto de IntellJ IDEA, pero se puede importar en otros IDEs de Java populares.
Java HTML a PDFVer la referencia de la API
Explore la Referencia de la API para IronPDF, que describe los detalles de todas las características, espacios de nombres, clases, métodos, campos y enums de IronPDF.
Ver la referencia de la API