在JTable之前和之后附加要打印的文本

我正在尝试打印JTableprint()方法很有效,直到我来到这个场景。 让我说我想打印之前,只在第一页(不是标题)文本“报告”,最后文本“这是报告的结束”。 我想再一次澄清我不需要页眉或页脚,只有当我打印它们时,这个文本出现在最后一页的第一页和最后一页的顶部。

我怎样才能做到这一点?

一种方法是append()一系列合适的Printable实例append()java.awt.print.Book ,如下所示。

附录: JTable有一个getPrintable()方法,可以简化事情; 这是一个大纲和简单标题Printable

 PrinterJob pj = PrinterJob.getPrinterJob(); Book book = new Book(); book.append(new Title(), pj.defaultPage()); book.append(table.getPrintable(...), pj.defaultPage()); book.append(new EndPage(), pj.defaultPage()); pj.setPageable(book); pj.print(); ... private static class Title implements Printable { Font font = new Font("SansSerif", Font.PLAIN, 48); @Override public int print(Graphics g, PageFormat pf, int pageIndex) throws PrinterException { Graphics2D g2d = (Graphics2D) g; g2d.translate(pf.getImageableX(), pf.getImageableY()); g2d.setFont(font); g2d.setColor(Color.black); g2d.drawString("Report", 50, 200); return Printable.PAGE_EXISTS; } }