Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Cet article traite des deux bibliothèques les plus populaires utilisées en Java pour travailler avec des fichiers PDF :
Apache PDFBox
Quelle bibliothèque devrions-nous utiliser ? Dans cet article, je vais comparer les fonctionnalités de base de ces deux bibliothèques afin de vous permettre de décider laquelle est la plus adaptée à votre environnement de production.
PDPageContentStream
avec le document et la page en entréePDPageContentStream
instance pour configurer et ajouter du contenusauver
méthodeLes IronPDF supports de bibliothèque HTML vers PDF pour Java 8+, Kotlin et Scala. Ce créateur offre une prise en charge multiplateforme, c'est-à-dire Windows, Linux ou les plateformes Cloud. Il est spécialement conçu pour Java qui privilégie la précision, la facilité d'utilisation et la rapidité.
IronPDF est conçu pour aider les développeurs de logiciels à développer, éditer et extraire le contenu des documents PDF. Il s'appuie sur le succès et la popularité d'IronPDF for .NET.
Les principales caractéristiques d'IronPDF sont les suivantes :
Apache PDFBox est une bibliothèque Java open source permettant de travailler avec des fichiers PDF. Il permet de générer, d'éditer et de manipuler des documents existants. Il peut également extraire le contenu des fichiers. La bibliothèque propose plusieurs utilitaires permettant d'effectuer diverses opérations sur les documents.
Voici les principales caractéristiques d'Apache PDFBox.
Le reste de l'article se lit comme suit :
Conclusion
Nous allons maintenant télécharger et installer les bibliothèques afin de comparer leurs puissantes fonctionnalités.
L'installation d'IronPDF for Java est simple. Il existe différentes manières de procéder. Cette section présente deux des méthodes les plus courantes.
Pour télécharger le fichier JAR d'IronPDF, visitez la page Site web de Maven et téléchargez la dernière version d'IronPDF.
Cliquez sur l'option Downloads et téléchargez le JAR.
Une fois le JAR téléchargé, il est temps d'installer la bibliothèque dans notre projet Maven. Vous pouvez utiliser n'importe quel IDE, mais nous utiliserons Netbeans. Dans la section Projets :
Faites un clic droit sur le dossier Libraries et sélectionnez l'option Add JAR/Folder.
Une autre façon de télécharger et d'installer IronPDF est d'utiliser Maven. Vous pouvez simplement ajouter la dépendance dans le pom.xml ou utiliser l'outil Dependency de Netbeans pour l'inclure dans votre projet.
Copiez le code suivant et collez-le dans le pom.xml.
``xml-mvn-install-ao
#### Ajouter la bibliothèque à l'aide de la fonctionnalité Dépendances
- Clic droit sur les dépendances
- Sélectionnez Add Dependency et remplissez les détails suivants avec la version mise à jour
<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: Ajouter la dépendance IronPDF" class="img-responsive add-shadow"></a> <p class="content__image-caption">Ajouter la dépendance IronPDF</p> </div></div>
Installons maintenant Apache PDFBox.
## 2. Installation d'Apache PDFBox
Nous pouvons télécharger et installer PDFBox en utilisant les mêmes méthodes qu'IronPDF.
### 2.1. Télécharger le JAR et ajouter la bibliothèque manuellement
Pour installer PDFBox JAR, visitez le site officiel et [télécharger](https://pdfbox.apache.org/) la dernière version.
Après avoir créé un projet, dans la section projet :
- Cliquez avec le bouton droit de la souris sur le dossier Libraries et sélectionnez l'option **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: Ajouter une bibliothèque" class="img-responsive add-shadow"></a> <p class="content__image-caption">Ajouter une bibliothèque</p> </div></div>
- Déplacez-vous dans le dossier où vous avez téléchargé le JAR.
- Sélectionnez le JAR PDFBox et cliquez sur le bouton Ouvrir.
<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="Comparaison entre IronPDF for Java et Apache PDF Box for Java - Figure 6 : Ouvrir le JAR de PDFBox" class="img-responsive add-shadow"></a> <p class="content__image-caption">Ouvrir le JAR de PDFBox</p> </div></div>
### 2.2. Installation via Maven en tant que dépendance
#### Ajouter une dépendance dans le fichier pom.xml
Copiez le code suivant et collez-le dans le pom.xml.
```xml
<dependencies>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-app</artifactId>
<version>3.0.0-alpha3</version>
</dependency>
</dependencies>
Cela téléchargera automatiquement la dépendance PDFBox et l'installera dans le dossier du référentiel. Il est maintenant prêt à l'emploi.
IronPDF propose différentes méthodes de création de fichiers. Examinons les deux méthodes les plus importantes.
IronPDF simplifie grandement les tâches suivantes générer des documents à partir de HTML. L'exemple de code suivant convertit l'URL d'une page web en 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"));
Le résultat est l'URL ci-dessous qui est bien formaté et sauvegardé comme suit :
L'exemple de code suivant montre comment une chaîne HTML peut être utilisée pour rendre un PDF en Java. Il suffit d'utiliser une chaîne ou un document HTML pour le convertir et générer de nouveaux documents.
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"));
Le résultat est le suivant :
PDFBox peut également générer de nouveaux documents PDF à partir de différents formats, mais il ne peut pas convertir directement une URL ou une chaîne HTML.
L'exemple de code suivant crée un document contenant du texte :
//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 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();
Cependant, si nous supprimons contentStream.newLineAtOffset(25, 700);
de l'exemple de code ci-dessus et exécutez ensuite le projet, il produit un PDF avec une sortie en bas de page. Cela peut être assez ennuyeux pour certains développeurs, car ils doivent ajuster le texte à l'aide de la fonction (x,y) coordonnées. y = 0
signifie que le texte apparaîtra en bas.
IronPDF peut facilement convertir plusieurs images en un seul PDF. Le code permettant d'ajouter plusieurs images à un seul document est le suivant :
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);
}
Le code permettant de crypter les PDF avec un mot de passe dans IronPDF est donné ci-dessous :
// 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 permet également le cryptage des documents afin de rendre les fichiers plus sûrs. Vous pouvez également ajouter des informations supplémentaires telles que des métadonnées. Le code est le suivant :
//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 est gratuit pour le développement d'applications PDF simples et peut à tout moment faire l'objet d'une licence pour un usage commercial. IronPDF propose des licences pour un seul projet, des licences pour un seul développeur, des licences pour les agences et les organisations multinationales, ainsi que des licences de redistribution SaaS et OEM et une assistance. Toutes les licences sont disponibles avec un essai gratuitle logiciel est accompagné d'une garantie de remboursement de 30 jours et d'un an d'assistance et de mise à jour du logiciel.
Le paquetage Lite est disponible pour $749. Il n'y a absolument aucun frais récurrent avec les produits IronPDF. Des informations plus détaillées sur les licences des logiciels sont disponibles sur le site du produit octroi de licences page.
Apache PDFBox est disponible gratuitement. Il est gratuit quelle que soit l'utilisation qui en est faite, que ce soit à des fins personnelles, internes ou commerciales.
Vous pouvez inclure la licence Apache 2.0 (version actuelle) de ici. Pour inclure la copie de la licence, il suffit de l'inclure dans votre travail et vous pouvez également joindre la notice suivante en tant que commentaire en haut de votre code source.
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 comparaison, IronPDF l'emporte sur Apache PDFBox en termes de fonctionnalités et d'assistance technique. Il fournit également un support SaaS et OEM, ce qui est une exigence dans le développement de logiciels modernes. Cependant, la bibliothèque n'est pas libre d'utilisation commerciale comme l'est Apache PDFBox.
Les entreprises qui possèdent de grandes applications logicielles peuvent avoir besoin de corrections de bogues et d'une assistance permanente de la part de fournisseurs tiers pour résoudre les problèmes qui surviennent au cours du développement du logiciel. C'est quelque chose qui manque à de nombreuses solutions open source comme Apache PDFBox, qui dépend du soutien volontaire de sa communauté de développeurs pour assurer sa maintenance. En résumé, IronPDF convient mieux aux entreprises et au marché, tandis qu'Apache PDFBox est plus adapté aux applications personnelles et non commerciales.
Il existe également une version d'essai gratuite pour tester les fonctionnalités d'IronPDF. Essayez-le ou achetez-le maintenant.
Vous pouvez désormais obtenir tous les produits Iron Software dans Iron Suite à un prix très réduit. Visitez ce site page web pour plus d'informations sur cette offre exceptionnelle.
9 produits de l'API .NET pour vos documents de bureau