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.
Nom : Sans titre1.jpg
Affichages : 549
Taille : 20,4 Ko
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
		  }