我正在为财务管理创建一个应用程序。所以我正在努力让最终的工作得到打印摘要。 摘要页面由不同的表组成,每个表后跟两个标签和文本字段。 如果有人可以帮助我解决这个问题,那将会很棒。
我想要的只是将填充的Jtable打印到文件中。
我不是Java的专家,我使用Netbeans编码gui。
另外关于fileformat我认为它必须.rtf支持行等。希望从这里创建rtf文件不会有困难。
Ps:我不是特别关注格式.rtf我只想要一种可以支持列和表的格式。
我想要添加的另一件事是我想从自定义模板创建收据。我正在考虑将.rtf文件用作模板并向文件添加必要的值。但是在用java编辑文件后,它似乎看起来不错。如果有人能建议我合适的格式会更好
编辑:
我设法获得了一个现成的代码,用于将jtable打印到pdf,并且它运行良好且良好。代码如下
Document document = new Document(PageSize.A4);
try {
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:\Users\arun\Desktop\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();
JOptionPane.showMessageDialog(null,"done","done",JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
System.err.println(e.getMessage());
}
document.close();
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();
JOptionPane.showMessageDialog(null,"done","done",JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
System.err.println(e.getMessage());
}
document.close();
但桌子正在靠近页面的左侧打印。我想留下左边距,并且还要打印每个表格列的标题。
我试过了document.setmargins()。但它没有用。关于专栏的标题,我不知道。
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以通过TableModel
从JTable检索jTable.getModel()
来提取数据,使用model.getRowCount()
,model.getColumnCount()
和model.getValueAt(row, col)
对内容进行迭代,如果您不想要任何第三方工具,最后将值打印到普通FileWriter
。
请参阅API文档中的JTable,TableModel,FileWriter,BufferedWriter。