0
4

1 に答える 1

0

iText を使用します。PDFへの変換に役立つサードパーティのライブラリ

public class JTable2Pdf extends JFrame {
private JTable table;

public JTable2Pdf() {
getContentPane().setLayout(new BorderLayout());
createTable();
}
private void createTable() {
Object[][] data = {{ "a", "b", "e", 4, false } };
String[] columnNames = { "A", "B", "C", "D", "E" };

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);
}

   private void print() {
Document document = new Document(PageSize.A4.rotate());
try {
  PdfWriter writer = PdfWriter.getInstance(document, new     FileOutputStream("jTable.pdf"));

  document.open();
  PdfContentByte cb = writer.getDirectContent();

  cb.saveState();
  Graphics2D g2 = cb.createGraphicsShapes(500, 500);

  Shape oldClip = g2.getClip();
  g2.clipRect(0, 0, 500, 500);

  table.print(g2);
  g2.setClip(oldClip);

  g2.dispose();
  cb.restoreState();
} catch (Exception e) {
  System.err.println(e.getMessage());
}
document.close();
}
 public static void main(String[] args) {
JTable2Pdf frame = new JTable2Pdf();
frame.pack();
frame.setVisible(true);
frame.print();
}
}
于 2012-10-13T18:09:59.693 に答える