/**
* Constructing a JTable and printing it to PDF.
*/
public class Export extends JPanel {
private static final long serialVersionUID = 8461166420041411734L;
/**
* Exporte la table en fichier pdf
*/
public void print(JTable table,String classe,int type) {
//ouverture du document
Document document = new Document(PageSize.A4.rotate());
document.setMargins(20, 20, 10, 10);
//init une table pdf basic
Table tablePdf = null;
//génération d'un numéro d'édition
int rnd=new Random().nextInt(100);
try {
//recup de l'instance de pdfwritter
PdfWriter writer;
if(type==0){
PdfWriter.getInstance(document, new FileOutputStream("export\\classe\"+classe+" édition standard n°"+rnd+".pdf"));}
else{
PdfWriter.getInstance(document, new FileOutputStream("export\\classe\"+classe+" édition numéro n°"+rnd+".pdf"));}
//ouverture du codument
document.open();
//prépare la pdf table
tablePdf = new Table(table.getColumnCount(),table.getRowCount());
//on parse toute la JTABLE (Pour chaque colonne et pour chaque ligne)
for (int i = 0 ; i < table.getColumnCount() ; i++)
{
for (int j = 0 ; j < table.getRowCount() ; j++)
{
// On cré une nouvelle cellule que l'on ajoute à la pdf table
try
{
Cell cell=new Cell(table.getValueAt(j, i).toString());
cell.setLeading(11);
tablePdf.addCell(cell, j, i);
}
catch (NullPointerException npe){}
}
}
// différents paramêtres de la table (bordure, alignement contenu, taille tableau
tablePdf.setSpaceInsideCell(2);
tablePdf.setBorderWidth(1);
tablePdf.setTableFitsPage(true);
tablePdf.setAlignment(Element.ALIGN_MIDDLE);
tablePdf.setAutoFillEmptyCells(true);
tablePdf.setWidth(100);
//création du paragraphe centré auquel on ajoute notre element pdf table ainsi qu'un titre
Paragraph para= new Paragraph(new Chunk("Classe de "+classe));
para.setAlignment(Element.ALIGN_CENTER);
para.add(tablePdf);
document.add(para);