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

Problema al imprimir desde Java

Estas en el tema de Problema al imprimir desde Java en el foro de Java en Foros del Web. Hola a todos, tengo el siguiente problema: En tiempo de ejecución se me van generando una serie de mensajes de alerta que al final muestro ...
  #1 (permalink)  
Antiguo 19/06/2009, 05:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 0
Problema al imprimir desde Java

Hola a todos, tengo el siguiente problema:

En tiempo de ejecución se me van generando una serie de mensajes de alerta que al final muestro en un JTextArea. Lo que quiero es imprimir esos mensajes por la impresora y para ello tengo un panel con el textArea y un botón IMPRIMIR. El problema que tengo es que cuando imprime, si la cadena de texto era mayor que la línea que entra en el papel de la impresora, no se imprime.

He buscado ejemplos por google pero no he encontrado solución.

¿Alguien tiene alguna?

Gracias desde ya.
  #2 (permalink)  
Antiguo 19/06/2009, 06:05
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: Problema al imprimir desde Java

Wenas

Cuantos caracteres te entran?? Cuando lo sepas no tienes mas que romper la linea sobre el caracter indicado, introduciendo un '\n'.

Saludos.
  #3 (permalink)  
Antiguo 19/06/2009, 06:32
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Problema al imprimir desde Java

Hola Laura, serías tan amable de poner el código que tienes para imprimir??
No es que te lo vaya a solucionar porque soy novato, pero es para seguir aprendiendo.
Estoy programando en java con netbeans y quiero imprimir facturas. Tal vez no te cueste mucho y me lo puedas pasar aprovechando la ocasion. Gracias
  #4 (permalink)  
Antiguo 22/06/2009, 02:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problema al imprimir desde Java

El problema es que si le mando varias líneas largas, sigue saliendo igual. Es decir, yo tengo 3 líneas separadas por \n que mando imprimir. Pues bien, solo imprime la primera línea y no todo el texto sino la parte que entra en el folio. El resto de líneas no (supongo q es porque la impresora no hace caso al \n).

Este es el código que tengo:

DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
DocPrintJob pj = service.createPrintJob();
byte[] bytes;
bytes = texto.getBytes(); //texto contenido en textArea
Doc doc = new SimpleDoc(bytes, flavor, null);
try{
pj.print(doc,null);
}catch(Exception e){
System.out.println("ERROR al imprimir: "+e.getMessage());
}

Para que te hagas una idea, el texto es del siguiente estilo:

"La persona Fulanito de Tal y Cual está imputada el día 2007-10-01 al proyecto XXXXXX 8 horas (responsable Proyecto : mengano)\n La persona Fulano de tal y cual está imputada el día 2008-01-01 al proyecto YYYYYYY 8 horas (responsable Proyecto: menganito)\n ......etc."

En la impresora sólo se ve hasta XXXXXX. A partir de ahí no se imprime nada aún teniendo \n

¿alguna idea de cómo puedo hacerlo??
  #5 (permalink)  
Antiguo 22/06/2009, 03:21
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: Problema al imprimir desde Java

http://java.sun.com/j2se/1.4.2/docs/...ntService.html

Código:
DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;
   PrintRequestAttributeSet aset = new HashPrintRequestHashAttributeSet();
   aset.add(MediaSizeName.ISO_A4);   
PrintService[] pservices =
                 PrintServiceLookup.lookupPrintServices(flavor, aset);
   if (pservices.length > 0) {
       DocPrintJob pj = pservices[0].createPrintJob();
       // InputStreamDoc is an implementation of the Doc interface //
       Doc doc = new InputStreamDoc("test.ps", flavor);
       try {
             pj.print(doc, aset);
        } catch (PrintException e) { 
        }
   }
La tercera linea parece que pone tamaño A4.
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 00:53.