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

Mandar a Imprimir a Impresora (?)

Estas en el tema de Mandar a Imprimir a Impresora (?) en el foro de Java en Foros del Web. Tengo el siguiente codigo que utilizo para imprimir directamente en una implesora termica para hacer etiqueta y funciona bien @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original ...
  #1 (permalink)  
Antiguo 20/01/2012, 12:31
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
Mandar a Imprimir a Impresora (?)

Tengo el siguiente codigo que utilizo para imprimir directamente en una implesora termica para hacer etiqueta y funciona bien

Código Java:
Ver original
  1. public void impresion2(String item, String cust_num, String iden, String country, String country2, String qty) throws PrintException{
  2. //Obtenemos la impresora por defecto
  3. PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
  4.  java.util.Date fecha = new Date();
  5.                 int[] diasDeMeses = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31};
  6.                 int mes = fecha.getMonth();
  7.                 int dia = fecha.getDate();
  8.                 int dia2 = 0;
  9.                 int dias = 0;
  10.                 for (int i = 0; i < mes; i++) {
  11.                     dia2 = diasDeMeses[i];
  12.                     dias = dias + dia2;
  13.                 }
  14.  
  15.                 dias = dias + dia;
  16.                 String dias_acum = "" + dias + "";
  17.                 if (dias_acum.length() == 1) {
  18.                     dias_acum = "00" + dias_acum;
  19.                 }
  20.                 if (dias_acum.length() == 2) {
  21.                     dias_acum = "0" + dias_acum;
  22.                 }
  23.                 int iNumero = fecha.getYear();
  24.                 int anio = iNumero % 10;
  25.  
  26.                  String julian_ind = anio + dias_acum;
  27. String zplCommand = "Hola Mundo";
  28. // convertimos el comando a bytes
  29. byte[] by = zplCommand.getBytes();
  30. DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
  31. Doc doc = new SimpleDoc(by, flavor, null);
  32.  
  33. // creamos el printjob
  34. DocPrintJob job = printService.createPrintJob();
  35.  
  36. // imprimimos
  37. job.print(doc, null);
  38.  
  39. }

la Pregunta es la siguiente como puedo mandar a imprimir a una impresora q yo elija dandole el nombre, ya que si utiliso DocPrintJob no le puedo mandar un nombre de impresora

como puedo hacer eso?, decirle al DocPrinJob a que impresora imprimir sin usar un dialogo como en PrinJob

tengo este otro codigo en el cual puedo saber que impresoras tngo instaladas pero la diferencia radica en que en esta linea

Código Java:
Ver original
  1. PrintService printService = PrintServiceLookup.lookupDefaultPrintService();

la convierto en arrglo para poder sacar las impresoras y asi poder utilizar una impresora que elija pero solo usando PrintJob con DocPrintJob no puedo

este es el otro codigo

Código Java:
Ver original
  1. public void impresion(String item, String cust_num, String iden, String country, String country2, String qty) throws PrinterException {
  2.         String printName = "";
  3.         item_no = item;
  4.         ident = iden;
  5.         country_o = country;
  6.         country_o2 = country2;
  7.         qty2 = qty;
  8.         cus = cust_num;
  9.  
  10.         PrinterJob printJob = PrinterJob.getPrinterJob();
  11.         Book book = new Book();
  12.         book.append(new IntroPage(), printJob.defaultPage());
  13.         printJob.setPageable(book);
  14.  
  15. //aqui obtengo el arreglo de todas las impresoras que tengo instaladas
  16.         PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
  17.         for (PrintService printService : services) {
  18.             if (count == 0) {
  19. //aqui le digo al servicio a que impresora quiero q me imprima
  20.                 printName = printService.getName();
  21.             }
  22.             count = count + 1;//junto con este
  23.         }
  24.         AttributeSet aset = new HashAttributeSet();
  25.         aset.add(new PrinterName(printName, null));
  26.         services = PrintServiceLookup.lookupPrintServices(null, aset);
  27.         for (PrintService printService : services) {
  28.             PrintService printers[] = PrintServiceLookup.lookupPrintServices(null, aset);
  29.             if (printers.length == 1) {
  30.                 printJob.setPrintService(printers[0]);
  31.                 try {
  32. //mando imprimir
  33.                     printJob.print();
  34.                     band = true;
  35.                     count = 0;
  36.                     resp();
  37.                 } catch (Exception PrintException) {
  38.                     PrintException.printStackTrace();
  39.                 }
  40.             }
  41.         }
  42.     }

espero puedan ayudarme necesito hacer algo parecido pero con DocPrintJob

de Antemano Gracias

Etiquetas: impresora, 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 17:39.