Foros del Web » Programación para mayores de 30 ;) » Java »

Imprimir varias páginas con Book

Estas en el tema de Imprimir varias páginas con Book en el foro de Java en Foros del Web. Hola a todos! Estoy intentando imprimir varias etiquetas de una sola vez. La idea es crear una instancia de la clase Book, añadir todas las ...
  #1 (permalink)  
Antiguo 28/01/2015, 09:30
 
Fecha de Ingreso: septiembre-2004
Mensajes: 24
Antigüedad: 20 años, 3 meses
Puntos: 0
Imprimir varias páginas con Book

Hola a todos!

Estoy intentando imprimir varias etiquetas de una sola vez. La idea es crear una instancia de la clase Book, añadir todas las etiquetas (una por página) e imprimir despues el resultado. A priori fácil. El problema es que la impresión resultante es un documento en blanco (si no uso la clase Book e imprimo las etiquetas una a una funciona sin problemas):

Por un lado la clase de las etiquetas:

public class CEtiqueta implements Printable {
String val_pre;
String bar_cod;
String nom_art;
int veces;
//Constructor para pasar las variables
public CEtiqueta(String a, String b, String c, int d){
val_pre = a;
nom_art = b;
bar_cod = c;
veces = d; //numero de etiquetas
}

public int print(Graphics g, PageFormat pf, int pageIndex) {
if (pageIndex < veces) {
//Genero el código de barras
JBarcodeBean barcode;
barcode = new JBarcodeBean();
barcode.setCodeType(new Interleaved25());
barcode.setCode(bar_cod);
barcode.setCheckDigit(true);
BufferedImage codigo = barcode.draw(new BufferedImage(100, 20, BufferedImage.TYPE_INT_RGB));
//Genero la etiqueta
Graphics2D g2 = (Graphics2D) g;
g2.setFont(new Font("Serif", Font.PLAIN, 11));
g2.setPaint(Color.black);
g2.drawString(nom_art, 10, 10);
g2.drawString(val_pre, 50, 20);
g2.drawImage(codigo, 10, 50, barcode);
return PAGE_EXISTS;
} else {
return NO_SUCH_PAGE;
}
}

Por otro lado imprimo las etiquetas:

PrinterJob pj = PrinterJob.getPrinterJob();
Book paginas = new Book();
//inserto primera etiqueta
paginas.append( new CEtiqueta("Feo", "linea 1", "254125487", 1), pj.getPageFormat(null) );
// inserto la segunda etiqueta
paginas.append( new CEtiqueta("Feo2", "linea 2", "254125488", 1), pj.getPageFormat(null) );
//asigno Book a PrinterJob
pj.setPageable(paginas);
//finalmente imprimo solicitando la impresora
if ( pj.printDialog() ){
try {
pj.print();
} catch (PrinterException e) {
System.out.println(e);
}
}

Si no utilizo la clase Book me imprime la o las etiquetas sin problema, pero tal y como está el código, me imprime una hoja en blanco.

¿Alguna idea?

Mil gracias!.

Etiquetas: book, clase, páginas, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:37.