2012-04-20 10 views
5

Estoy tratando de imprimir un JTable y el método print() funciona muy bien hasta que llego a este escenario. Digamos que quiero imprimir antes, en la primera página solamente (no encabezado) el texto "Informe" y al final el texto "Este es el final del informe". Una vez más, me gustaría aclarar que no necesito un encabezado o pie de página para que este texto aparezca en la parte superior de la primera y la última página cuando los imprimo.Añadir texto para imprimir antes y después de una JTable

¿Cómo puedo hacer esto?

+0

No es posible. Actuall dublicate! – Vagelism

+0

bien. ¡Creo que está eliminado! ¡Gracias! – Vagelism

Respuesta

4

Una forma de hacerlo es append() una serie de instancias adecuadas Printable a java.awt.print.Book, como se muestra here.

Addendum: JTable tiene un método getPrintable() que debería simplificar las cosas; aquí hay un resumen y título simple 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; 
    } 
} 
+0

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Gracias pero parece que está avanzado Parece complicarse para imprimir solo 2 líneas. ¿Es esta la forma en que tiene que ser? Algo más simple? – Vagelism

+1

He elaborado anteriormente; puede que tenga que experimentar un poco usando la vista previa de impresión de su plataforma. – trashgod

Cuestiones relacionadas