Le format de fichiers pdf est l’un des plus répandus à l’heure actuelle.
En effet, il permet de transmettre des documents en étant sûr :
- qu’ils seront lisibles à l’arrivée (il existe des lecteurs de fichiers pdf pour la quasi totalité des plateformes existantes à l’heure actuelle)
- que le formatage sera conservé (pas de problème de mise en page, de polices manquantes,…).%%%
Nous pouvons donc être amenés à générer ou manipuler des fichiers au format pdf au sein de nos applications, et notamment à rassembler plusieurs fichiers pdf en un seul, pour en faciliter l’impression ou l’envoi par e-mail.
Pour cela, nous utilisons la librairie iText, qui est l’une des plus répandues pour la génération et la manipulation de fichiers pdf en Java.
Par exemple, fusionner deux documents nommés « fichierEntree1.pdf » et « fichierEntree2.pdf », et les sauvegarder dans un fichier nommé « fichierSortie.pdf » est réalisé grâce au code suivant :
[pastacode lang= »java » message= » » highlight= » » provider= »manual »]
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("fichierSortie.pdf"));
PdfReader pdfr = new PdfReader("fichierEntree1.pdf");
PdfReader pdfr2 = new PdfReader("fichierEntree2.pdf");
document.open();
PdfContentByte cb = writer.getDirectContent();
for (int i=1; i<=pdfr.getNumberOfPages(); i++) {
document.newPage();
cb.addTemplate(writer.getImportedPage(pdfr, i),0,0);
}
for (int i=1; i<=pdfr2.getNumberOfPages(); i++) {
document.newPage();
cb.addTemplate(writer.getImportedPage(pdfr2, i),0,0);
}
document.close();
[/pastacode]