HTML a PDF en Java

Este tutorial enseña a los desarrolladores Java a utilizar la biblioteca IronPDF para convertir contenidos HTML en PDF perfectos. (formato de documento portátil) documentos.

IronPDF es un conversor de PDF y una biblioteca de procesamiento de PDF con todas las funciones. IronPDF está disponible para .NET y Java lenguajes de programación. Este tutorial cubre el uso de la biblioteca para convertir contenido HTML (archivos, marcas, etc.) en aplicaciones Java. El tutorial para convertir HTML a PDF en aplicaciones .NET está disponible aquí.


Visión general


Primeros pasos

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

Biblioteca Java Maven para PDF

Instalar con Maven

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2024.3.1</version>
</dependency>
o
Java PDF JAR

Descargar JAR

  Descargar JAR

Instalar manualmente en su proyecto

Hay dos formas de incorporar el IronPDF Library 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>2024.3.1</version>
</dependency>

El primer artefacto hace referencia al última versión de la biblioteca IronPDF. El segundo artefacto hace referencia a un SL4J aplicación. 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 y Log4J); 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 librerías anteriormente mencionadas.

Opción 2: Instalar manualmente el JAR de IronPDF

Los desarrolladores que prefieran no utilizar Maven o cualquier otro sistema de gestión de dependencias tendrán que descargue el archivo JAR de la biblioteca IronPDF (y el opcional SL4J aplicación) y añadirlo manualmente a la ruta de clases de su proyecto.

Descargue el archivo JAR de IronPDF directamente de aquí (o desde el repositorio 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 renderizado 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 sentencia import en la parte superior de los archivos fuente Java (donde se utilizará IronPDF) para que estos componentes sean accesibles al código fuente de la aplicación.

//  Declaración de importación de IronPDF para Java
import com.ironsoftware.ironpdf.*;
JAVA

2.2. Configurar la clave de licencia (opcional)

IronPDF para 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 siguiente imagen).

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.

//  Aplique su clave de licencia
License.setLicenseKey("YOUR-LICENSE-KEY");
JAVA

La clave de licencia debe establecerse antes de generar archivos PDF o personalizar su contenido. Le recomendamos que llame al método setLicenseKey antes de todas las demás líneas de código.

Comprar una clave de licencia de nuestra página de licencias, o póngase en contacto con nosotros para obtener una clave de licencia de prueba gratuita.

2.3 Establecer la ubicación del archivo de registro (opcional)

Por defecto (y suponiendo que hay un proveedor 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:

//  Establecer una ruta de registro
Settings.setLogPath(Paths.get("IronPdfEngine.log"));
JAVA

Nota: Se debe llamar a Settings.setLogPath 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

Convertir marcas HTML en archivos PDF mediante la función PdfDocument.renderHtmlAsPdf. Este método puede generar documentos PDF utilizando todas las marcas HTML y CSS válidas conformes con el W3C.

renderHtmlAsPdf procesa todo el contenido HTML, CSS y JavaScript de la misma forma que los navegadores modernos que cumplen con los estándares. 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 generar imágenes, hojas de estilo y scripts ubicados en carpetas de un ordenador o en una unidad de red. El siguiente ejemplo produce un documento PDF a partir de HTML que hace referencia a un archivo CSS y a una imagen situada 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.

PdfDocument.renderHtmlAsPdf puede mostrar todo tipo de elementos multimedia. Si se muestra en Chrome, entonces renderHtmlAsPdf ¡lo rendirá!

Un segundo (opcional) de renderHtmlAsPdf permite a los desarrolladores especificar una ruta base desde la que referenciar los activos web. Esta ruta puede ser un directorio del sistema de archivos local o incluso una ruta URL.

Más información sobre el método renderHtmlAsPdf en este ejemplo de códigoo léalo en el Referencia API páginas.

2.5. Crear un PDF a partir de una URL

Los desarrolladores pueden convertir páginas web en línea en 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.

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

Más información sobre la conversión de páginas web en contenido PDF en la página ejemplo de código.

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 demostración real 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 sus conocimientos sobre el uso del conversor HTML a PDF para el desarrollo en Java utilizando los ejemplos de código que aparecen en nuestra sección Ejemplos de códigos sección.

  1. Leer este ejemplo de código para aprender a 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 margen, dimensiones de la página, marcas de aguay mucho más.
  3. Extraer el contenido del PDF (texto y imágenes) de los documentos, optimizar el tamaño de los archivosy imprimir PDF mediante programación

    Estudiar la Referencia de la API Java de IronPDF sobre la clase PdfDocument para un control aún mayor de la conversión de HTML a 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.

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

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