1 pièce(s) jointe(s)
Exporter un tableau importer d'un base des données vers PDF
Bonjour,
J'ai arrivé à exporter mon JTable vers PDF, mais l'entête ne s'affiche pas et les bordures. J'ai essayé de changer table.print(g2) par scrollpane mais malheureusement si j'ai une vingtaine de ligne ceux qui se trouve en bas de la page ne seront pas visible.
Pièce jointe 192729
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| Statement stmt = connexion.createStatement();
rs = stmt.executeQuery(sql);
md = rs.getMetaData();
columns = md.getColumnCount();
// Get column names
for ( int i = 1; i <= columns; i++)
{
titrecolonnes.addElement( md.getColumnName(i) );
}
// Get row data
while (rs.next())
{
Vector row = new Vector(columns);
for (int i = 1; i <= columns; i++)
{
row.addElement(rs.getObject(i));
}
donnee.addElement(row);
}
rs.close();
stmt.close();
} catch(Exception cnfe)
{
System.out.println("Error:"+cnfe.getMessage());
}
model = new DefaultTableModel (donnee, titrecolonnes)
{
public Class getColumnClass(int columnNames) {
Class returnValue;
if ((columnNames >= 0) && (columnNames < getColumnCount())) {
returnValue = getValueAt(0, columnNames).getClass();
} else {
returnValue = Object.class;
}
return returnValue;
}
};
table = new JTable(model);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
sorter = new TableRowSorter<TableModel>(model) ;
table.setPreferredScrollableViewportSize(new Dimension(780, 200));
scrollPane = new JScrollPane((table));
table.setRowSorter (sorter) ;
add(scrollPane);
scrollPane.setBounds(15, 180, 780, 240);
table.setIntercellSpacing(new Dimension(2, 2));
table.setRowHeight(28);
Document document = new Document(PageSize.A4.rotate());
try {
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("E:\\Liste impayé.pdf"));
document.open();
PdfContentByte cb = writer.getDirectContent();
cb.saveState();
Graphics2D g3 = cb.createGraphics(780, 520);
Shape oldClip = g3.getClip();
g3.clipRect(05, 0, 760,600);
table.print(g3);
g3.setClip(oldClip);
g3.dispose();
cb.restoreState();
JOptionPane.showMessageDialog(null, "Le tableau a été exporté vers PDF avec succès");
} catch (Exception e) {
System.err.println(e.getMessage());
JOptionPane.showMessageDialog(null, "Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre utilisateur."," Erreur", JOptionPane.ERROR_MESSAGE);
}
document.close();
} |