Aggiungi testo per la stampa prima e dopo un JTable

Sto cercando di stampare un JTable e il metodo print() funziona alla grande fino a quando non arrivo a questo scenario. Diciamo che voglio stampare prima, solo nella prima pagina (non nell’intestazione) il testo “Segnala” e alla fine nel testo “Questa è la fine del rapporto”. Vorrei ancora una volta chiarire che non ho bisogno di un’intestazione o di un piè di pagina solo che questo testo appaia nella parte superiore della prima e della parte inferiore dell’ultima pagina quando li stampo.

Come posso fare questo?

Un modo per farlo è append() una serie di istanze di Printable adatte a un java.awt.print.Book , come mostrato qui .

Addendum: JTable ha un metodo getPrintable() che dovrebbe semplificare le cose; ecco un contorno e un semplice titolo 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; } }