Java Combinar archivos PDF en un solo PDF

PDF es un formato de documento portátil, que es una forma electrónica de documento nuevo que contiene texto y gráficos. Es un formato independiente que muestra el mismo contenido y diseño en todos los sistemas operativos, dispositivos o aplicaciones informáticas.

Java es un lenguaje de programación de alto nivel que, al igual que los datos PDF, también es independiente de la plataforma. Esto facilita el paso de un sistema informático a otro. Sin embargo, trabajar con archivos PDF de origen y flujo de entrada puede ser una tarea difícil en Java. IronPDF - Una Librería Java, es muy adecuada para manipular y trabajar con archivos PDF existentes fácilmente.

En esta guía práctica aprenderá a instalar la biblioteca Java IronPDF y a combinar varios documentos PDF.

IronPDF: Biblioteca Java

IronPDF es una biblioteca Java para crear, leer y editar uno o varios documentos PDF. Permite a sus usuarios crear todos los archivos PDF desde cero, incluida la apariencia del contenido mediante renderizado HTML, así como metadatos como el título y el nombre del autor. La biblioteca también permite combinar varios archivos PDF, lo que facilita enormemente la combinación del contenido en una ruta de archivo PDF de destino. No requiere bibliotecas de terceros, marcos externos ni integración de plataformas para trabajar con archivos PDF u objetos iteradores PDF. También proporciona Soporte multiplataforma. Está diseñado específicamente para Java 8+, Kotlin y Scala ejecutándose en Windows, Linux y plataformas en la nube.

Requisitos previos

Para fusionar varios archivos PDF, necesitará lo siguiente:

  1. Cualquier IDE compatible con Java (Netbeans, Eclipse, IntelliJ, etc.). Aquí utilizaremos IntelliJ para fusionar varios PDF.
  2. Un proyecto Maven ejecutándose en IDE

Instalar IronPDF

Lo primero que necesitamos para fusionar archivos PDF es la biblioteca Java IronPDF. Existen tres formas de descargar e instalar IronPDF en cualquier proyecto.

  1. Puede añadir la dependencia IronPDF en el archivo pom.xml de un proyecto Maven y utilizar la herramienta de línea de comandos maven o un IDE para descargar la biblioteca directamente desde el repositorio central.
  2. Otra forma es visitar el sitio web de Maven y descargar la última versión de IronPDF. Puede descargarlo en aquí directamente.
  3. También puede visitar el sitio web de IronPDF para descargar directamente a través de este enlace.

    En cada caso, se añade el siguiente código de dependencia al archivo pom.xml.

    ``xml-mvn-install-ao

Otra dependencia necesaria para fusionar archivos PDF es Slf4j-simple. También puede añadirlo al archivo pom.xml utilizando el siguiente código o puede visitar el sitio web de Maven aquí[aquí].

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.5</version>
</dependency>
XML
Java Merge PDFs - Figura 1: dependencias pom.xml

dependencias pom.xml

Las siguientes declaraciones de importación también son necesarias en el archivo main.java, para utilizar las funciones IronPDF para fusionar archivos PDF.

import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
JAVA

Fusionar dos archivos fuente PDF en Java con IronPDF

A fusionar PDF primero tenemos que crear archivos PDF y luego convertirlos en un archivo PDF fusionado final. El siguiente ejemplo de código hará precisamente eso:

String htmlA = "<p> [PDF_A] </p>"
        + "<p> [PDF_A] 1st Page </p>"
        + "<div style = 'page-break-after: always;' ></div>"
        + "<p> [PDF_A] 2nd Page</p>";
String htmlB = "<p> [PDF_B] </p>"
        + "<p> [PDF_B] 1st Page </p>"
        + "<div style = 'page-break-after: always;' ></div>"
        + "<p> [PDF_B] 2nd Page</p>";
//Documento y objetos PdfReader
PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);
PdfDocument merged = PdfDocument.merge(pdfA, pdfB);
JAVA

El código anterior crea dos cadenas que contienen marcas HTML. El contenido HTML de cada variable abarca dos páginas. A continuación, se llama al método renderHtmlAsPdf de IronPDF y ambas cadenas HTML se convierten en documentos PDF individuales.

El método para unir archivos PDF es PdfDocument.merge. Se llama al método anterior para fusionar los dos documentos PDF en un único documento PDF. El resultado es un nuevo PdfDocument producido añadiendo el contenido del segundo PdfDocument al final del primero.

Guardar varios documentos PDF fusionados

Para guardar el archivo PDF fusionado en la ruta de destino que desee, sólo tiene que utilizar la siguiente instrucción:

merged.saveAs(Paths.get("assets/merged.pdf"));
JAVA

A continuación se muestra la salida del archivo PDF fusionado:

Java Merge PDFs - Figura 2: Fusionar varios documentos PDF

Fusionar varios documentos PDF

Fusionar más de dos archivos PDF

A fusionar más de dos PDF primero crearemos una colección que contenga los objetos PdfDocument necesarios y luego pasaremos la lista como argumento único al método PdfDocument.merge. El código es el siguiente:

import java.util.ArrayList;
import java.util.List;

public static void main(String [] args) throws IOException {
    String htmlA = "<p> [PDF_A] </p>"
            + "<p> [PDF_A] 1st Page </p>"
            + "<div style = 'page-break-after: always;' ></div>"
            + "<p> [PDF_A] 2nd Page</p>";
    String htmlB = "<p> [PDF_B] </p>"
            + "<p> [PDF_B] 1st Page </p>"
            + "<div style = 'page-break-after: always;' ></div>"
            + "<p> [PDF_B] 2nd Page</p>";
    String htmlC = "<p> [PDF_C] </p>"
            + "<p> [PDF_C] 1st Page </p>"
            + "<div style = 'page-break-after: always;' ></div>"
            + "<p> [PDF_C] 2nd Page</p>";
    String htmlD = "<p> [PDF_D] </p>"
            + "<p> [PDF_D] 1st Page </p>"
            + "<div style = 'page-break-after: always;' ></div>"
            + "<p> [PDF_D] 2nd Page</p>";

    PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
    PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);
    PdfDocument pdfC = PdfDocument.renderHtmlAsPdf(htmlC);
    PdfDocument pdfD = PdfDocument.renderHtmlAsPdf(htmlD);

    List<PdfDocument> pdfs = new ArrayList<>();
    pdfs.add(pdfA);
    pdfs.add(pdfB);
    pdfs.add(pdfC);
    pdfs.add(pdfD);

    PdfDocument merged = PdfDocument.merge(pdfs);

    merged.saveAs(Paths.get("assets/more_than_two_merged.pdf"));
}
JAVA

Arriba se crean cuatro documentos PDF utilizando el método de renderizado HTML. A continuación, rellenamos una nueva colección List con cada uno de los PDF y pasamos esta lista al método de fusión como único argumento. Como resultado, estos PDF se fusionan en un único documento PDF.

Java Merge PDFs - Figura 3: Más de dos archivos PDf fusionados

Más de dos archivos PDF fusionados

Conclusión

Este artículo explica cómo unir archivos PDF utilizando IronPDF para Java.

Primero cubrimos cómo instalar IronPDF para Java utilizando Maven, y luego mostramos una forma sencilla de producir PDFs utilizando los métodos de renderizado HTML. Después, vimos cómo fusionar dos o más PDF en un único archivo PDF.

IronPDF funciona muy bien y realiza todas las operaciones con rapidez y precisión. Es una excelente opción para trabajar con archivos PDF en Java. Además, se basa en las capacidades de IronPDF for .NET.

IronEngine para Java permite la conversión de HTML/URL/String a PDF con tipos de documentos estándar abiertos como HTML, CSS, JS, JPG y PNG. Produce documentos PDF perfectos y se basa en la tecnología más avanzada.

Puede obtener más información sobre cómo utilizar IronPDF para Java en nuestro Ejemplos de códigos páginas.

IronPDF es gratuito para el desarrollo y puede adquirirse bajo licencia para uso comercial. Para obtener más información sobre la licencia, visite la siguiente dirección enlace.