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

como hacer una impresora predeterminada

Estas en el tema de como hacer una impresora predeterminada en el foro de Java en Foros del Web. hola a todos como hacer una impresora predeterminada desde mi codigo java Gracias...
  #1 (permalink)  
Antiguo 20/06/2006, 16:52
 
Fecha de Ingreso: mayo-2004
Ubicación: SurOeste de Guayaquil
Mensajes: 241
Antigüedad: 19 años, 11 meses
Puntos: 0
De acuerdo como hacer una impresora predeterminada

hola a todos

como hacer una impresora predeterminada desde mi codigo java

Gracias
__________________
javier
  #2 (permalink)  
Antiguo 10/04/2012, 16:25
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: como hacer una impresora predeterminada

Hola Pudiste hacer lo que pretendias, yo tambien intento hacer algo asi, me podrias apoyar, gracias
  #3 (permalink)  
Antiguo 10/04/2012, 20:15
Avatar de liloo6retug  
Fecha de Ingreso: junio-2010
Ubicación: Marsella
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: como hacer una impresora predeterminada

Cita:
Iniciado por valdo_kof Ver Mensaje
Hola Pudiste hacer lo que pretendias, yo tambien intento hacer algo asi, me podrias apoyar, gracias

revisa:
http://www.javaworld.com/javaworld/j...020-print.html

o

http://blog.marcnuri.com/blog/defaul...inter-program=
  #4 (permalink)  
Antiguo 11/04/2012, 07:05
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: como hacer una impresora predeterminada

Ok gracias por responder, mira el primer link es una explicacion general del uso de PrintJob, que es lo que estoy usando y el segundo link es de jasper reports, no estoy usando eso, lo que necesito es algo parecido a esto:

tengo un codigo para mandar imprimir directo en la impresora usando DocPrintJob de java para imprimir en una impresora termica una etiqueta

mi codigo es el siguiente

Código Java:
Ver original
  1. PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
  2.  String zplCommand ="codigo ZPL";
  3. // convertimos el comando a bytes
  4. byte[] by = zplCommand.getBytes();
  5. DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
  6. Doc doc = new SimpleDoc(by, flavor, null);
  7.  
  8. // creamos el printjob
  9. DocPrintJob job = printService.createPrintJob();
  10.  // imprimimos
  11. job.print(doc, null);

el problema de aqui es que no le puedo indicar a que impresora mandar a imprimir como en este codigo

Código Java:
Ver original
  1. PrinterJob printJob = PrinterJob.getPrinterJob();
  2.         Book book = new Book();
  3.         book.append(new IntroPage(), printJob.defaultPage());
  4.         printJob.setPageable(book);
  5.         PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);//este es el problema xq aqui lo uso como arreglo y en DocPrintJob no
  6.         for (PrintService printService : services) {//aqui saco todos los nombres de las impresoras instaladas
  7.             if (count == 0) {//aqui lo que hago es obtener el nombre de la primer impresora encontrada, q en este caso es la predeterminada
  8.                 printName = printService.getName();
  9.             }
  10.             count = count + 1;
  11.         }
  12.         AttributeSet aset = new HashAttributeSet();
  13.         aset.add(new PrinterName(printName, null
  14.         services = PrintServiceLookup.lookupPrintServices(null, aset);
  15.         for (PrintService printService : services) {
  16.             PrintService printers[] = PrintServiceLookup.lookupPrintServices(null, aset);
  17.             if (printers.length == 1) {
  18.                 printJob.setPrintService(printers[0]);//aqui es donde le digo a que impresora mandar a imprimir
  19.                 try {
  20.                     printJob.print();
  21.                     band = true;
  22.                     count = 0;
  23.                     resp();
  24.                 } catch (Exception PrintException) {
  25.                     PrintException.printStackTrace();
  26.                 }
  27.             }

el problema con el que me encuentro es q no usar DocprintJob utilizando
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
solo
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();

si no puedo cambiar la impresora predeterminada con codigo java, alguien podria ayudarme a decirle al DocPrintJob a que impresora imprimir?

Nota: Necesito Mandar Imprimir Directo sin que me salga la ventana de dialogo donde selecciono la impresora, en ninguno de los dos ejemplos uso el printDialog()

Gracias de Antemano
  #5 (permalink)  
Antiguo 11/04/2012, 08:13
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: como hacer una impresora predeterminada

Solucionado

Gracias por tomar en cuenta mi peticion

No pude cambiar de impresora predeterminada pero ya pude indicarle a cual impresora imprimir, dejo el codigo con anotaciones de lo que hace

Código Java:
Ver original
  1. public void imprimir1d() throws PrintException, FileNotFoundException, IOException{
  2.  
  3. //asigno a una variable el nombre de la impresora
  4. String printName="ZDesigner TLP 2824 Plus (ZPL)";
  5.  
  6. //aqui creo un arreglo para obtener todas las impresoras que tengo instaladas
  7.  PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null );    
  8.  
  9.   //aqui le digo con que impresora voy a trabajar          
  10.         AttributeSet aset = new HashAttributeSet();
  11.         aset.add(new PrinterName(printName, null));
  12.         services = PrintServiceLookup.lookupPrintServices(null, aset);
  13.  
  14. //creo mi linea de comandos que voy a mandar a imprimir
  15.  String zplCommand ="~JO\n"+
  16. "^XZ\n";
  17.  
  18. // convertimos el comando a bytes
  19. byte[] by = zplCommand.getBytes();
  20. DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
  21. Doc doc = new SimpleDoc(by, flavor, null);
  22.  
  23. // creamos el printjob
  24. DocPrintJob job = services[0].createPrintJob();
  25.  // imprimimos
  26. job.print(doc, null);
  27.  
  28.  
  29. }

para saber el nombre de tus impresaras como las reconoce la PC carrer este codigo

Código Java:
Ver original
  1. PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
  2.  
  3.         for (PrintService printService : services) {
  4.         System.out.println(printService.getName());
  5.         }

y listo espero les sirva esta solucion

Hasta Pronto
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 10:41.