Impresion

Leo
26 de Abril del 2002
Necesito escribir un programa en Java que imprima reportes, pero las clases de javax.print no me han funcionado. Al hacer el lookup de print services me retorna un array vacio. ¿Existe otro paquete para imprimir? Por ahi vi el java.awt.print, pero me parece que es para imprimir controles graficos, y no tengo control sobre cambios de paginas, tamaño de papel, etc. Ojala alguien me pueda dar alguna luz.

De antemano gracias.
Leo.

Luismahou
26 de Abril del 2002
Muy buenas!

Del paquete de javax.print no he tocado nada, y no te puedo ayudar, pero del java.awt.print he hecho bastante. Puedes imprimir todo lo que pintes un Graphics. Esto es un poco largo de explicar así que te aconsejo que mires el tutorial: http://java.sun.com/docs/books/tutorial/2d/printing/index.html

No se como crearas los report, pero si los muestras por pantalla, y tienes un componente que los pinte, puedes hacer algo parecido:
public int print(Graphics g, PageFormat pf, int pageIndex) {
// Llamando al paint, pintas en este graphics
// lo que muestras por pantalla
paint(g);
}

Como quieres imprimir varias páginas tienes que crearte un Book, también viene explicado en el tutorial, y crear un mecanismo para que cuando llames al paint() sepas que hoja tiene que pintar tu componente.

No se si me he explicado muy bien, si tienes alguna duda me lo comentas.

Un saludo,

Luismahou