APIs d'export en PDF
Exemples de création de documents
Création d'un document en 5 étapes
La création d'un document PDF avec l'API iText peut s'effectuer en 5 étapes. Voici le détail de chacune d'entre elles.
- Création d'une instance de l'objet Document
- Création d'un writer sur notre document
- Ouverture du document
- Ajout du contenu au document
- Fermeture du document
Voici ce à quoi pourrait ressembler notre programme JAVA:
package contents;
import java.awt.*;
import java.io.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
public class HelloWorld {
private final static String out = "contents2.pdf";
public static void main(String[] args) {
// etape 1
Document document = new Document(PageSize.A4);
try {
// etape 2:
// creation du writer -> PDF ou HTML
PdfWriter.getInstance(document, new FileOutputStream(out));
// etape 3: Ouverture du document
document.open();
// etape 4: Ajout du contenu au document
document.add(new Phrase("Hello World"));
}
catch(DocumentException de) {
System.err.println(de.getMessage());
}
catch(IOException ioe) {
System.err.println(ioe.getMessage());
}
// etape 5: Fermeture du document
document.close();
System.out.println("Document '"+out+"' generated");
}
}
Le fichier contents.pdf généré contient le texte "Hello World"
Création d'un emploi du temps
Une des fonctionnalités de notre application de gestion des emplois du temps est de générer un emploi du temps dans un format portable. L'exemple ci dessous montre la simplicité avec laquelle il est possible de générer un emploi du temps avec l'API iText.
package edt;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
import java.io.*;
import Utilz.*;
public class EmploiDuTemps {
private static int TP = 1;
private static int CM = 2;
private static final String out = "EDT.pdf";
public static void main(String[] args) {
// etape 1: creation du document
Document document = new Document(PageSize.A4.rotate());
try {
// etape 2:
// creation du writer -> PDF ou HTML
PdfWriter.getInstance(document, new FileOutputStream(out));
// etape 3: ouverture du document
document.open();
// etape 4: Creation d'un tableau
Table table = Utilz.createTable(13);
table.addCell("8h30\n-\n10h30");
/*Lundi matin*/
Cell cellule = Utilz.ajoutEnseignement("MSI","S.Grebert","2051",CM,4);
table.addCell(cellule);
/*Mardi matin*/
cellule = Utilz.ajoutEnseignement(" ","","",CM,2);
table.addCell(cellule);
/*Mercredi Matin*/
cellule = Utilz.ajoutEnseignement("Sécurite des reseaux","S.Lelong","2032",CM,4);
table.addCell(cellule);
/*jeudi matin*/
cellule = Utilz.ajoutEnseignement("Systeme","D.Revuz","2032",CM,4);
table.addCell(cellule);
/*Vendredi matin*/
cellule = Utilz.ajoutEnseignement("TP Sécurité des réseaux","1A","2051",TP,4);
table.addCell(cellule);
cellule = Utilz.ajoutEnseignement("TP Sécurité des réseaux","2A","2037",TP,4);
table.addCell(cellule);
table.addCell("10h45\n-\n12h45");
/*Mardi matin*/
cellule = Utilz.ajoutEnseignement("TD J2EE","Y.Mourier","2034",CM,2);
table.addCell(cellule);
Cell cell = new Cell("Dejeuner");
cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
cell.setColspan(11);
cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
cell.setVerticalAlignment(Cell.ALIGN_CENTER);
table.addCell(cell);
table.addCell("13h45\n-\n15h45");
//Lundi apres midi
cellule = Utilz.ajoutEnseignement("TD MSI","S.Grebert","2051",CM,2);
table.addCell(cellule);
//Mardi apres midi
cellule = Utilz.ajoutEnseignement("Admin BDD","JF Barbé","2051",CM,4);
table.addCell(cellule);
//Mercredi apres midi
cellule = Utilz.ajoutEnseignement("Systeme","D.Revuz","2051",CM,4);
table.addCell(cellule);
//Jeudi apre midi
cellule = Utilz.ajoutEnseignement("Sport","","",CM,4);
table.addCell(cellule);
//Vendredi apre midi
cellule = Utilz.ajoutEnseignement("","","",CM,4);
table.addCell(cellule);
cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
cell.setVerticalAlignment(Cell.ALIGN_CENTER);
table.addCell("16h00\n-\n18h00");
table.setWidth(100);
document.add(table);
}
catch(DocumentException de) {
System.err.println(de.getMessage());
}
catch(IOException ioe) {
System.err.println(ioe.getMessage());
}
// etape 5: fermeture du document
document.close();
System.out.println("Document '"+out+"' generated");
}
}
package Utilz;
import java.awt.Color;
import com.lowagie.text.*;
public class Utilz {
/*Création du Header du document*/
public static HeaderFooter createHeader() {
Paragraph para = new Paragraph();
para.add("Entete du fichier PDF");
HeaderFooter header = new HeaderFooter(para,false);
header.setAlignment(HeaderFooter.ALIGN_CENTER);
return header;
}
/*Ajout d'un enseignement à notre emploi du temps*/
public static Cell ajoutEnseignement(String cours,String prof, String salle, int type, int heure) {
Cell cell = new Cell("");
Paragraph p = new Paragraph();
p.add(cours +"\n"+prof+"\n"+salle);
cell.add(p);
cell.setColspan(type);
cell.setRowspan(heure/2);
cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
cell.setVerticalAlignment(Cell.ALIGN_CENTER);
return cell;
}
/*Création du tableau de notre emploi du temps*/
public static Table createTable(int debut) throws BadElementException {
String sFin = Integer.toString(debut+4);
Table table = new Table(11);
table.setBorderWidth(2);
table.setBorderColor(new Color(0, 0, 255));
table.setPadding(5);
table.setSpacing(3);
Cell cell = createCell("Semaine du "+debut+" au "+ sFin +" décembre",11);
table.addCell(cell);
cell = createCell("Jours\n/\nHeure",1);
table.addCell(cell);
cell=createCell("Lundi "+Integer.toString(debut),2);
table.addCell(cell);
cell=createCell("Mardi "+Integer.toString(debut+1),2);
table.addCell(cell);
cell=createCell("Mercredi "+Integer.toString(debut+2),2);
table.addCell(cell);
cell=createCell("Jeudi "+Integer.toString(debut+3),2);
table.addCell(cell);
cell= createCell("Vendredi "+Integer.toString(debut+4),2);
table.addCell(cell);
return table;
}
/*Aide à la création d'une cellule */
private static Cell createCell(String sCell, int colspan) {
Cell cell = new Cell(sCell);
cell.setColspan(colspan);
cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
cell.setVerticalAlignment(Cell.ALIGN_CENTER);
return cell;
}
}
Le fichier edt.pdf contient le tableau de notre emploi du temps.