HTML a PDF en Java

Chaknith Bin
Chaknith Bin
28 de diciembre, 2022
Actualizado 10 de diciembre, 2024
Compartir:
This article was translated from English: Does it need improvement?
Translated
View the article in English

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


Primeros pasos

Comience a usar IronPDF en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer


1. Instalación de la biblioteca PDF IronPDF for Java

Hay dos maneras de incorporar la biblioteca IronPDF en un proyecto Java:

  1. Añadir IronPDF como dependencia en un proyecto Java configurado con Maven

  2. 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.*;
JAVA

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).

Html To Pdf 23 related to 2.2. Configurar la clave de licencia (opcional)

Obtenga una clave de licencia en ironpdf.com/java/licensing/ para convertir y manipular documentos PDF sin marcas de agua.

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");
JAVA

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"));
JAVA

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");
JAVA
Html To Pdf 5 related to 2.4. Crear un PDF a partir de una cadena HTML

Convierte el marcado HTML en un archivo PDF usando el método PdfDocument.renderHtmlAsPdf. Este método puede generar documentos PDF utilizando todo el marcado HTML y CSS válido conforme a W3C.

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");
JAVA

El resultado del código anterior se muestra en la siguiente imagen.

Html To Pdf 24 related to 2.4. Crear un PDF a partir de una cadena HTML

PdfDocument.renderHtmlAsPdf puede renderizar todo tipo de elementos de medios enriquecidos. Si se muestra en Chrome, entonces renderHtmlAsPdf lo renderizará.

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");
JAVA

A continuación se muestra el formato de archivo PDF generado.

Html To Pdf 7 related to 2.5. Crear un PDF a partir de una URL

La biblioteca de Java IronPDF puede convertir contenido HTML contenido en páginas web alojadas en línea. Utilice el método PdfDocument.renderUrlAsPdf para hacerlo.

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>
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");
JAVA

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.

  1. 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.

  2. 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.

  3. 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

Cps Intellij related to 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.

Descargar

Explore 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 PDF
Github Icon related to Acceso rápido a tutoriales
Documentation related to Acceso rápido a tutoriales

Ver 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
Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.