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
| import java.awt.BorderLayout;
import java.awt.Graphics2D;
import java.io.FileOutputStream;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfTemplate;
import com.itextpdf.text.pdf.PdfWriter;
public class MainClass extends JFrame{
private static final long serialVersionUID = 1L;
private JTable table;
public static void main(String[] args) throws Exception {
MainClass frame = new MainClass();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
@SuppressWarnings("deprecation")
public MainClass() throws Exception {
getContentPane().setLayout(new BorderLayout());
Object[][] data = { { "A", "B", "C", new Integer(5), new Boolean(false) },
{ "D", "E", "F", new Integer(3), new Boolean(true) } };
String[] columnNames = { "First Name", "Last Name", "Sport", "# of Years", "Vegetarian" };
table = new JTable(data, columnNames);
JPanel tPanel = new JPanel(new BorderLayout());
tPanel.add(table.getTableHeader(), BorderLayout.NORTH);
tPanel.add(table, BorderLayout.CENTER);
getContentPane().add(tPanel, BorderLayout.CENTER);
Document document = new Document();
PdfWriter writer;
writer = PdfWriter.getInstance(document, new FileOutputStream("ITextTest.pdf"));
document.open();
PdfContentByte cb = writer.getDirectContent();
cb.saveState();
PdfTemplate tp = cb.createTemplate(500, 500);
Graphics2D g2;
g2 = tp.createGraphicsShapes(500, 500);
table.print(g2);
g2.dispose();
cb.addTemplate(tp, 30, 300);
cb.restoreState();
document.close();
}
} |
Partager