Java - Impresión de varias páginas con Book

   
Vista:

Impresión de varias páginas con Book

Publicado por Jucagovi (2 intervenciones) el 28/01/2015 16:25:11
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!.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Impresión de varias páginas con Book

Publicado por Brian vazquez (2 intervenciones) el 24/07/2017 20:03:00
Hola que tal.
Tengo el mismo problema.
Ya lograste imprimir los datos o aun no?.

Ojala podamos resolver este dato.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Impresión de varias páginas con Book

Publicado por Brian vazquez (2 intervenciones) el 26/07/2017 16:40:16
Ya pude hacerlo y el error esta en el formato de la pagina debes de conocer cuantas pulgadas debes de imprimir y eso mandárselo a la hoja de lo contrario como no sabes el tamaño exacto de la impresión no imprime nada.

el valor entero de 72 es igual a una pulgada. ya tu haces lo que quieras con el papel que desees.

cualquier duda creo que si te puedo ayudar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar