COMPARACIóN DE PRODUCTOS

Comparación entre IronPDF para Java y Apache PDFBox

Actualizado 14 de enero, 2023
Compartir:

Este artículo cubrirá las siguientes dos de las bibliotecas más populares utilizadas en Java para trabajar con archivos PDF:

  1. IronPDF
  2. Apache PDFBox

    ¿Qué biblioteca debemos utilizar? En este artículo, compararé la funcionalidad básica de ambas bibliotecas para que pueda tomar una decisión sobre cuál es la mejor para su entorno de producción.

IronPDF

En IronPDF biblioteca compatible HTML a PDF para Java 8+, Kotlin y Scala. Este creador ofrece compatibilidad entre plataformas, es decir, Windows, Linux o plataformas en la nube. Está especialmente diseñado para Java, que da prioridad a la precisión, la facilidad de uso y la velocidad.

IronPDF se ha desarrollado para ayudar a los desarrolladores de software a desarrollar, editar y extraer contenido de documentos PDF. Se basa en el éxito y la popularidad de IronPDF for .NET.

Entre las características más destacadas de IronPDF se incluyen:

Utilizar activos HTML

  • HTML (5 e inferiores)CSS (Pantalla e impresión)imágenes (JPG, PNG, GIF, tiff, svg, bmp)JavaScript (+ Retrasos de renderizado)
  • Fuentes (Web e icono)

HTML a PDF

  • Creación y manipulación de archivos HTML/cadenas a documentos PDF
  • URL a PDF

Convertir imágenes

  • Imagen a nuevos documentos PDF
  • PDF a imagen

Configuración personalizada del papel

  • Tamaño, orientación y rotación del papel personalizados
  • Márgenes (mm, pulgada y cero)
  • Color y escala de grises, resolución y calidad JPEG

Características adicionales

  • Acceso al sitio web y al sistema
  • Agentes de usuario y proxies personalizados
  • Cabeceras HTTP

Biblioteca PDFBox de Apache

Apache PDFBox es una biblioteca Java de código abierto para trabajar con archivos PDF. Permite generar, editar y manipular documentos existentes. También puede extraer el contenido de los archivos. La biblioteca proporciona varias utilidades que se utilizan para realizar diversas operaciones en los documentos.

Estas son las características más destacadas de Apache PDFBox.

Extraer texto

  • Extrae texto Unicode de archivos.

Dividir y combinar

  • Dividir un único PDF en varios archivos
  • Fusionar varios documentos.

Rellenar formularios

  • Extraer datos de formularios
  • Rellene un formulario PDF.

Preflight

  • Validación de archivos según el estándar PDF/A-1b.

Imprimir

  • Imprima un PDF utilizando la API de impresión estándar.

Guardar como imagen

  • Guarda PDF como PNG, JPEG u otros tipos de imagen.

Crear PDF

  • Desarrolle un PDF desde cero con fuentes e imágenes incrustadas.

Firma

  • Firma digitalmente archivos.

Visión general

El resto del artículo es el siguiente:

  1. Instalación de IronPDF
  2. Instalación de Apache PDFBox
  3. Crear documento PDF
  4. Imágenes para documentar
  5. Cifrado de documentos
  6. Licencias
  7. Conclusión

    A continuación, descargaremos e instalaremos las bibliotecas para comparar sus potentes características.

1. Instalación de IronPDF

La instalación de IronPDF for Java es sencilla. Hay diferentes maneras de hacerlo. Esta sección mostrará dos de las formas más populares.

1.1. Descargue el JAR y añada la biblioteca

Para descargar el archivo JAR de IronPDF, visite la página Sitio web de Maven y descargue la última versión de IronPDF.

  • Haga clic en la opción Descargas y descargue el JAR.

    Comparación entre IronPDF for Java y Apache PDF Box para Java - Figura 1: Descargar IronPDF JAR

    Descargar IronPDF JAR

    Una vez descargado el JAR, es el momento de instalar la librería en nuestro proyecto Maven. Puedes usar cualquier IDE, pero nosotros usaremos Netbeans. En la sección Proyectos:

  • Haga clic con el botón derecho en la carpeta Libraries y seleccione la opción Add JAR/Folder.

    A Comparison between IronPDF For Java and Apache PDF Box for Java - Figure 2: Añadir librería IronPDF en Netbeans

    Añadir librería IronPDF en Netbeans

  • Vaya a la carpeta donde descargó el JAR.
  • Seleccione el JAR IronPDF y haga clic en el botón Abrir.
    Comparación entre IronPDF For Java y Apache PDF Box for Java - Figura 3: Abrir el JAR de IronPDFAbrir el JAR de IronPDF

    Abrir el JAR de IronPDF

1.2. Instalación mediante Maven como dependencia

Otra forma de descargar e instalar IronPDF es utilizando Maven. Puede simplemente añadir la dependencia en el pom.xml o utilizar la herramienta de dependencia de Netbeans para incluirla en su proyecto.

Añadir la dependencia de la biblioteca en pom.xml

Copia el siguiente código y pégalo en el pom.xml.

``xml-mvn-install-ao


#### Añadir la biblioteca mediante la función de dependencias

- Haga clic con el botón derecho en las dependencias
- Seleccione Añadir dependencia y rellene los siguientes datos con la versión actualizada
<div class="content-img-align-center">
    <div class="center-image-wrapper">
        <a rel="nofollow" href="/static-assets/ironpdf-java/blog/apache-pdfbox-html-to-pdf-java/apache-pdfbox-html-to-pdf-java-4.webp" target="_blank"><img src="/static-assets/ironpdf-java/blog/apache-pdfbox-html-to-pdf-java/apache-pdfbox-html-to-pdf-java-4.webp" alt="A Comparison between IronPDF For Java and Apache PDF Box for Java - Figure 4: Añadir dependencia de IronPDF" class="img-responsive add-shadow"></a>
        <p class="content__image-caption">Añadir dependencia de IronPDF</p>
    </div>
</div>
Ahora vamos a instalar Apache PDFBox.

## 2. Instalación de Apache PDFBox

Podemos descargar e instalar PDFBox utilizando los mismos métodos que IronPDF.

### 2.1. Descargar JAR y añadir la librería manualmente

Para instalar PDFBox JAR, visite el sitio web oficial y [descargar](https://pdfbox.apache.org/)  la última versión.

Después de crear un proyecto, en la sección de proyectos:

- Haga clic con el botón derecho en la carpeta Libraries y seleccione la opción **Add JAR/Folder**.
<div class="content-img-align-center">
    <div class="center-image-wrapper">
        <a rel="nofollow" href="/static-assets/ironpdf-java/blog/apache-pdfbox-html-to-pdf-java/apache-pdfbox-html-to-pdf-java-5.webp" target="_blank"><img src="/static-assets/ironpdf-java/blog/apache-pdfbox-html-to-pdf-java/apache-pdfbox-html-to-pdf-java-5.webp" alt="A Comparison between IronPDF For Java and Apache PDF Box for Java - Figure 5: Añadir biblioteca" class="img-responsive add-shadow"></a>
        <p class="content__image-caption">Añadir biblioteca</p>
    </div>
</div>

- Vaya a la carpeta donde descargó el JAR.
- Seleccione el JAR PDFBox y haga clic en el botón Abrir.
<div class="content-img-align-center">
    <div class="center-image-wrapper">
        <a rel="nofollow" href="/static-assets/ironpdf-java/blog/apache-pdfbox-html-to-pdf-java/apache-pdfbox-html-to-pdf-java-6.webp" target="_blank"><img src="/static-assets/ironpdf-java/blog/apache-pdfbox-html-to-pdf-java/apache-pdfbox-html-to-pdf-java-6.webp" alt="Comparación entre IronPDF for Java y Apache PDF Box para Java - Figura 6: Abrir PDFBox JAR" class="img-responsive add-shadow"></a>
        <p class="content__image-caption">Abrir PDFBox JAR</p>
    </div>
</div>

### 2.2. Instalación mediante Maven como dependencia

#### Añadir dependencia en el pom.xml

Copia el siguiente código y pégalo en el pom.xml.

```xml
<dependencies>
    <dependency>  
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox-app</artifactId>
        <version>3.0.0-alpha3</version>
    </dependency>
</dependencies>

Esto descargará automáticamente la dependencia PDFBox y la instalará en la carpeta del repositorio. Ahora estará listo para su uso.

Añadir dependencia mediante la función Dependencias

  • Haga clic con el botón derecho en las dependencias de la sección del proyecto
  • Seleccione Añadir dependencia y rellene los siguientes datos con la versión actualizada
    A Comparison between IronPDF For Java and Apache PDF Box for Java - Figure 7: Añadir dependencia PDFBox

    Añadir dependencia PDFBox

3. Crear documento PDF

3.1. Utilización de IronPDF

IronPDF ofrece diferentes métodos para crear archivos. Veamos los dos métodos más importantes.

URL existente a PDF

IronPDF hace que sea muy sencillo generar documentos a partir de HTML. El siguiente ejemplo de código convierte la URL de una página web en un PDF.

License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
PdfDocument myPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
myPdf.saveAs(Paths.get("url.pdf"));
JAVA

La salida es la siguiente URL que está bien formateada y guardada como sigue:

Comparación entre IronPDF for Java y Apache PDF Box para Java - Figura 8: Añadir dependencia de PDFBox

Salida URL de IronPDF

Cadena de entrada HTML a PDF

El siguiente código de ejemplo muestra cómo puede utilizarse una cadena HTML para representar un PDF en Java. Basta con utilizar la cadena o el documento HTML para convertirlo y generar nuevos documentos.

License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
myPdf.saveAs(Paths.get("html_saved.pdf"));
JAVA

El resultado es el siguiente:

Comparación entre IronPDF For Java y Apache PDF Box for Java - Figura 9: Salida HTML de IronPDF

Salida HTML de IronPDF

3.2. Uso de Apache PDFBox

PDFBox también puede generar nuevos documentos PDF a partir de distintos formatos, pero no puede convertir directamente a partir de URL o cadenas HTML.

El siguiente ejemplo de código crea un documento con algo de texto:

//Crear objeto documento
PDDocument document = new PDDocument();    

PDPage blankPage = new PDPage();
document.addPage(blankPage);

//Recuperación de las páginas del documento 
PDPage paper = document.getPage(0);
PDPageContentStream contentStream = new PDPageContentStream(document, paper);

//Iniciar el flujo de contenidos 
contentStream.beginText(); 

//Establecer la fuente en el flujo de contenido  
contentStream.setFont(PDType1Font.TIMES_ROMAN, 12);

//Fijar la posición de la línea 
contentStream.newLineAtOffset(25, 700);

String text = "This is the sample document and we are adding content to it.";

//Añadir texto en forma de cadena 
contentStream.showText(text);      

//Fin del flujo de contenidos
contentStream.endText();

System.out.println("Content added");

//Cerrar el flujo de contenidos
contentStream.close();

//Guardar el documento
document.save("C:/PdfBox_Examples/my_doc.pdf");

System.out.println("PDF created");  

//Cerrar el documento  
document.close();
JAVA
Comparación entre IronPDF For Java y Apache PDF Box for Java - Figura 10: PDFBox Salida posicionada

PDFBox Salida posicionada

Sin embargo, si eliminamos contentStream.newLineAtOffset(25, 700); del ejemplo de código anterior y luego ejecute el proyecto, produce un PDF con salida en la parte inferior del pape. Esto puede ser bastante molesto para algunos desarrolladores, ya que tienen que ajustar el texto utilizando (x,y) coordenadas. y = 0` significa que el texto aparecerá en la parte inferior.

Comparación entre IronPDF for Java y Apache PDF Box para Java - Figura 11: Salida posicionada de PDFBox

PDFBox sin salida de posicionamiento

4. Imágenes para documentar

4.1. Utilización de IronPDF

IronPDF puede convertir fácilmente varias imágenes en un único PDF. El código para añadir varias imágenes a un mismo documento es el siguiente:

import com.ironsoftware.ironpdf.*;  
import java.io.IOException;  
import java.nio.file.*;  
import java.util.ArrayList;  
import java.util.List;  

//  Referencia al directorio que contiene las imágenes que deseamos convertir
List<Path> images = new ArrayList<>();
images.add(Paths.get("imageA.png"));
images.add(Paths.get("imageB.png"));
images.add(Paths.get("imageC.png"));
images.add(Paths.get("imageD.png"));
images.add(Paths.get("imageE.png"));

//  Renderice todas las imágenes seleccionadas como contenido PDF y guárdelas juntas en un solo documento.
PdfDocument merged = PdfDocument.fromImage(images);
merged.saveAs("output.pdf");
JAVA
Comparación entre IronPDF for Java y Apache PDF Box para Java - Figura 12: Salida posicionada de PDFBox

Salida de imágenes IronPDF

4.2. Uso de Apache PDFBox

import java.io.File;

import org.apache.pdfbox.pdmodel.PDDocument; 
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;

//  Referencia al directorio que contiene las imágenes que deseamos convertir
Path imageDirectory = Paths.get("assets/images");

//  Crea una lista vacía para contener las rutas a las imágenes del directorio.
List<Path> imageFiles = new ArrayList<>();

PDDocument doc = new PDDocument();

//  Utiliza un DirectoryStream para rellenar la lista con las rutas de cada imagen del directorio que queremos convertir
try (DirectoryStream<Path> stream = Files.newDirectoryStream(imageDirectory, "*.{png,jpg}")) {
    for (Path entry : stream) {
        imageFiles.add(entry);
    }
    for (int i = 0; i < imageFiles.size(); i++){
        //Añadir una página
PDPage blankPage = new PDPage();
        doc.addPage(blankPage);
        PDPage page = doc.getPage(i);

        //Creación del objeto PDImageXObject
        PDImageXObject pdImage = PDImageXObject.createFromFile(imageFiles.get(i).toString(),doc);

        //creación del objeto PDPageContentStream
        PDPageContentStream contents = new PDPageContentStream(doc, page);

        //Dibujar la imagen en el documento
        contents.drawImage(pdImage, 0, 0);

        System.out.println("Image inserted");

        //Cierre del objeto PDPageContentStream
        contents.close();
    }
    //Guardar el documento
    doc.save("C:/PdfBox_Examples/sample.pdf");

    //Cerrar el documento
    doc.close();

} catch (IOException exception) {
    throw new RuntimeException(String.format("Error converting images to PDF from directory: %s: %s",
            imageDirectory,
            exception.getMessage()),
            exception);
}
JAVA
Comparación entre IronPDF for Java y Apache PDF Box para Java - Figura 13: Imágenes PDFBox a la salida

Salida de imágenes IronPDF

5. Cifrado de documentos

5.1. Utilización de IronPDF

A continuación se indica el código para encriptar PDFs con una contraseña en IronPDF:

//  Abrir un documento (o crear uno nuevo a partir de HTML)
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/composite.pdf"));

//  Editar la configuración de seguridad
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");

//  Cambiar o establecer la contraseña de encriptación del documento
SecurityManager securityManager = pdf.getSecurity();
securityManager.setSecurityOptions(securityOptions);
pdf.saveAs(Paths.get("assets/secured.pdf"));
JAVA

5.2. Uso de Apache PDFBox

Apache PDFBox también proporciona encriptación de documentos para hacer los archivos más seguros. También puede añadir información adicional, como metadatos. El código es el siguiente:

//Cargar un documento existente
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);

//Creación de un objeto de permiso de acceso
AccessPermission ap = new AccessPermission();

//Creación del objeto StandardProtectionPolicy
StandardProtectionPolicy spp = new StandardProtectionPolicy("1234", "1234", ap);

//Ajuste de la longitud de la clave de cifrado
spp.setEncryptionKeyLength(128);

//Establecer los permisos de acceso
spp.setPermissions(ap);

//Proteger el documento
document.protect(spp);

System.out.println("Document encrypted");

//Guardar el documento
document.save("C:/PdfBox_Examples/encrypted.pdf");
//Cerrar el documento
document.close();
JAVA

6. Precios y licencias

Precios y licencias de IronPDF

IronPDF es de uso gratuito para el desarrollo de aplicaciones PDF sencillas y puede adquirirse una licencia para uso comercial en cualquier momento. IronPDF ofrece licencias para un solo proyecto, licencias para un solo desarrollador, licencias para agencias y organizaciones multinacionales, y licencias de redistribución SaaS y OEM y asistencia técnica. Todas las licencias están disponibles con una prueba gratuitaAdemás, le ofrecemos 30 días de garantía de devolución del dinero y un año de asistencia técnica y actualizaciones del software.

El paquete Lite está disponible por $749. Los productos IronPDF no conllevan ninguna cuota periódica. Encontrará información más detallada sobre las licencias de software en el producto licencias página.

Comparación entre IronPDF for Java y Apache PDF Box para Java - Figura 14: Licencias IronPDF

Licencias IronPDF

Precios y licencias de Apache PDFBox

Apache PDFBox está disponible gratuitamente. Es gratuito independientemente de cómo se utilice, ya sea para fines personales, internos o comerciales.

Puede incluir la Licencia Apache 2.0 (versión actual) de aquí. Para incluir la copia de la licencia, simplemente inclúyala en su trabajo y también puede adjuntar el siguiente aviso como comentario en la parte superior de su código fuente.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Conclusión

En comparación, IronPDF aventaja a Apache PDFBox tanto en funcionalidad como en soporte del producto. También ofrece soporte SaaS y OEM, que es un requisito en el desarrollo de software moderno. Sin embargo, la biblioteca no es gratuita para uso comercial como Apache PDFBox.

Las empresas con grandes aplicaciones de software pueden necesitar continuas correcciones de errores y el apoyo de proveedores externos para resolver los problemas que surjan durante el desarrollo del software. Esto es algo de lo que carecen muchas soluciones de código abierto como Apache PDFBox, que depende del apoyo voluntario de su comunidad de desarrolladores para mantenerse. En resumen, IronPDF es más adecuado para uso empresarial y comercial, mientras que Apache PDFBox es más adecuado para aplicaciones personales y no comerciales.

También existe una versión de prueba gratuita para comprobar la funcionalidad de IronPDF. Pruébalo o comprar ahora.

Ahora puede conseguir todos los productos de Iron Software en Iron Suite a un precio muy reducido. Visite esta página página web para obtener más información sobre esta increíble oferta.

< ANTERIOR
Comparación entre IronPDF para Java y Spire.PDF Java
SIGUIENTE >
Comparación entre IronPDF para Java e iTextPDF itext7 para Java

¿Listo para empezar? Versión: 2024.3 recién publicada

Descarga gratuita de Maven Ver licencias >