Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Este artículo cubrirá las siguientes dos de las bibliotecas más populares utilizadas en Java para trabajar con archivos PDF:
IronPDF
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.
PDPageContentStream
con el documento y la página como entradaPDPageContentStream
para configurar y añadir contenidosguardar
métodoEnIronPDF biblioteca compatibleConversión de HTML a PDF para Java 8+, Kotlin y Scala. Este creador ofrece soporte multiplataforma, es decir, plataformas Windows, Linux o Cloud. 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 crear, 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:
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.
El resto del artículo es el siguiente:
Instalación de IronPDF
Instalación de Apache PDFBox
Crear documento PDF
Imágenes para documentar
Cifrado de documentos
Licencias
Conclusión
A continuación, descargaremos e instalaremos las bibliotecas para compararlas y conocer sus potentes características.
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.
Para descargar el archivo JAR de IronPDF, visite la páginaSitio web de Maven para IronPDF y descargue la última versión de IronPDF.
Haga clic en la opción Descargas y descargue el JAR.
Una vez descargado el JAR, es el momento de instalar la librería en nuestro proyecto Maven. Puedes utilizar cualquier IDE, pero nosotros utilizaremos NetBeans. En la sección Proyectos:
Otra forma de descargar e instalar IronPDF es utilizando Maven. Puede simplemente añadir la dependencia en el pom.xml o utilizar la herramienta Dependency de NetBeans para incluirla en su proyecto.
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="Una comparación entre IronPDF para Java y Apache PDF Box para Java - Figura 4: Agregar 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 la biblioteca PDFBox](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="Una comparación entre IronPDF For Java y Apache PDF Box para Java - Figura 5: Agregar 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="Una comparación entre IronPDF For Java y Apache PDF Box for Java - Figura 6: Abrir JAR de PDFBox" 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 de PDFBox y la instalará en la carpeta del repositorio. Ahora estará listo para su uso.
IronPDF ofrece diferentes métodos para crear archivos. Veamos dos de los métodos más importantes.
IronPDF hace que sea muy sencillogenerar 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"));
El resultado es la siguiente URL bien formateada y guardada:
El siguiente código de ejemplo muestra cómo puede utilizarse una cadena HTML para representar un PDF en Java. Basta con utilizar una cadena o un documento HTML para convertirlo en 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"));
El resultado es el siguiente:
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:
//Create document object
PDDocument document = new PDDocument();
PDPage blankPage = new PDPage();
document.addPage(blankPage);
//Retrieving the pages of the document
PDPage paper = document.getPage(0);
PDPageContentStream contentStream = new PDPageContentStream(document, paper);
//Begin the Content stream
contentStream.beginText();
//Setting the font to the Content stream
contentStream.setFont(PDType1Font.TIMES_ROMAN, 12);
//Setting the position for the line
contentStream.newLineAtOffset(25, 700);
String text = "This is the sample document and we are adding content to it.";
//Adding text in the form of a string
contentStream.showText(text);
//Ending the content stream
contentStream.endText();
System.out.println("Content added");
//Closing the content stream
contentStream.close();
//Saving the document
document.save("C:/PdfBox_Examples/my_doc.pdf");
System.out.println("PDF created");
//Closing the document
document.close();
Sin embargo, si eliminamos contentStream.newLineAtOffset(25, 700);
del ejemplo de código anterior y luego ejecuta el proyecto, produce un PDF con salida en la parte inferior de la página. 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.
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;
// Reference to the directory containing the images that we desire to convert
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"));
// Render all targeted images as PDF content and save them together in one document.
PdfDocument merged = PdfDocument.fromImage(images);
merged.saveAs("output.pdf");
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;
// Reference to the directory containing the images that we desire to convert
Path imageDirectory = Paths.get("assets/images");
// Create an empty list to contain Paths to images from the directory.
List<Path> imageFiles = new ArrayList<>();
PDDocument doc = new PDDocument();
// Use a DirectoryStream to populate the list with paths for each image in the directory that we want to convert
try (DirectoryStream<Path> stream = Files.newDirectoryStream(imageDirectory, "*.{png,jpg}")) {
for (Path entry : stream) {
imageFiles.add(entry);
}
for (int i = 0; i < imageFiles.size(); i++){
//Add a Page
PDPage blankPage = new PDPage();
doc.addPage(blankPage);
PDPage page = doc.getPage(i);
//Creating PDImageXObject object
PDImageXObject pdImage = PDImageXObject.createFromFile(imageFiles.get(i).toString(),doc);
//creating the PDPageContentStream object
PDPageContentStream contents = new PDPageContentStream(doc, page);
//Drawing the image in the document
contents.drawImage(pdImage, 0, 0);
System.out.println("Image inserted");
//Closing the PDPageContentStream object
contents.close();
}
//Saving the document
doc.save("C:/PdfBox_Examples/sample.pdf");
//Closing the document
doc.close();
} catch (IOException exception) {
throw new RuntimeException(String.format("Error converting images to PDF from directory: %s: %s",
imageDirectory,
exception.getMessage()),
exception);
}
A continuación se indica el código para encriptar PDFs con una contraseña en IronPDF:
// Open a document(or create a new one from HTML)
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/composite.pdf"));
// Edit security settings
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");
// Change or set the document encryption password
SecurityManager securityManager = pdf.getSecurity();
securityManager.setSecurityOptions(securityOptions);
pdf.saveAs(Paths.get("assets/secured.pdf"));
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:
//Loading an existing document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);
//Creating access permission object
AccessPermission ap = new AccessPermission();
//Creating StandardProtectionPolicy object
StandardProtectionPolicy spp = new StandardProtectionPolicy("1234", "1234", ap);
//Setting the length of the encryption key
spp.setEncryptionKeyLength(128);
//Setting the access permissions
spp.setPermissions(ap);
//Protecting the document
document.protect(spp);
System.out.println("Document encrypted");
//Saving the document
document.save("C:/PdfBox_Examples/encrypted.pdf");
//Closing the document
document.close();
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 gratuitael precio incluye una garantía de devolución del dinero de 30 días y un año de soporte 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 productoPágina de licencias de IronPDF.
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) delLicencia Apache 2.0 Texto. Para incluir la copia de la licencia, basta con incluirla en el trabajo. También puede adjuntar la siguiente nota 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.
En comparación, IronPDF aventaja a Apache PDFBox tanto en funcionalidad como en soporte del producto. También proporciona 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 ocomprar IronPDF.
Ahora puede obtener todos los productos de Iron Software en la Iron Suite a un precio muy reducido. Visite esta páginaPágina web de Iron Suite para obtener más información sobre esta increíble oferta.
9 productos API .NET para sus documentos de oficina