CREER UN DOCUMENT PDF SIMPLE AVEC PDFBOX
1°) Importer la librairie org.apache.pdfbox
Disponible dans \\prof\ressources\Java\Pdfbox
2°) Dans le projet utiliser les import suivants :
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDType0Font;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
…
3°) Exemple de création d'un document simple :
…
//Création du document
PDDocument doc = new PDDocument();
//Création de la page et redimensionnage (format A4)
PDPage maPage = new PDPage(PDRectangle.A4);
//Ajout de la page dans le document
doc.addPage(maPage);
//Création d'une image
PDImageXObject logoAsso = PDImageXObject.createFromFile("./chemin/nomDuLogo.jpg", doc);
//Création du contenu
PDPageContentStream contenuFlux = new PDPageContentStream(doc, maPage);
//Ajout de l'image dans le contenu (nom image, distance du haut, distance bord droit, largeur, hauteur)
contenuFlux.drawImage(logoAsso, 5, 640, 200, 200);
//Ajout du titre dans le contenu
contenuFlux.setFont(PDType1Font.TIMES_ROMAN, 24);
contenuFlux.beginText();
// Position du texte : distance du haut, distance du bord gauche
contenuFlux.newLineAtOffset(280, 740);
contenuFlux.showText("TITRE DU DOCUMENT");
String texte1 = "Première phrase";
String texte2 = "Deuxième phrase";
String texte3 = "Troisième phrase";
contenuFlux.setLeading(14.5f); // Défini l'espace entre les lignes
contenuFlux.newLineAtOffset(-258, -200); // Position du texte
contenuFlux.setFont(PDType1Font.TIMES_ROMAN, 14); // Police et taille choisies
contenuFlux.showText(texte1);
contenuFlux.newLine();
contenuFlux.showText(texte2);
// Insertion de 2 lignes blanches
contenuFlux.newLine();
contenuFlux.newLine();
contenuFlux.showText(texte3);
contenuFlux.endText();
contenuFlux.close();
// Sauvegarde dans un fichier .pdf
doc.save("./src/pdf/monDocumentPDF.pdf");
doc.close();