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

java agregar imagen en impresion termica con epson tmt20

Estas en el tema de java agregar imagen en impresion termica con epson tmt20 en el foro de Java en Foros del Web. Hola necesito su ayuda para poder imprimir desde código java, en un ticket de una impresora térmica EPSON TMT20 una imagen, que no es mas ...
  #1 (permalink)  
Antiguo 23/02/2021, 16:31
 
Fecha de Ingreso: octubre-2010
Mensajes: 154
Antigüedad: 14 años, 1 mes
Puntos: 5
java agregar imagen en impresion termica con epson tmt20

Hola necesito su ayuda para poder imprimir desde código java, en un ticket de una impresora térmica EPSON TMT20 una imagen, que no es mas que un código QR del negocio. paso código ejemplo de generación e impresión de ticket.

Código fragmento codigo Java:
Ver original
  1. public void getCamposfijos() {
  2.         Propiedades prop = new Propiedades();
  3.         nombre = prop.getConfPROPIEDADES("nombre");
  4.         dir = prop.getConfPROPIEDADES("direccion");
  5.         gracias = prop.getConfPROPIEDADES("gracias");
  6.        
  7.         cabecera =   "  "+nombre+" \n"
  8.                          +  "   "+dir+"\n\n"
  9.                          +  "  PEDIDO: \n"
  10.                          + linea + "\n";        
  11.        
  12.     }
  13.  
  14. /*armado de un ticket de ejemplo que funciona perfecto por cierto.
  15. necesito meter una imagen *.jpg en la impresión.*/
  16.  
  17. public void p() {
  18.         try {
  19.             /** ARMO TEXTO FIJO */          
  20.             getCamposfijos();          
  21.            
  22.             PrinterService printerService = new PrinterService();
  23.  
  24.             String impresion = cabecera+ "\n"
  25.                             + concatena("(1) x Milaneza con frita", "$ 250,00",puntos)+"\n"
  26.                             + concatena("(1) x muzarela", "$ 200,00",puntos)+"\n"
  27.                             + concatena("(1) x 1/2 tarta jamon y queso", "$ 180,00",puntos)+"\n"
  28.                             + concatena("(1) x Milaneza con frita", "$ 250,00",puntos)+"\n"
  29.                             + concatena("ENVIO", "$ 30,00",puntos) +"\n"
  30.                             + concatena("","TOTAL: $910,00",espacios)+"\n\n"
  31.                             + linea + "\n"
  32.                             + "DESC. EXTRA: Para las 21:30hs \n\n"
  33.                             + "Cliente: MOE \n"
  34.                             + "Direccion: AV. SIEMPRE VIVAS \n\n"
  35.                             + gracias + "\n"
  36.                             + " fecha: "+Util.getFecha(new Date(), "dd/MM/yyyy HH:mm")+"hs \n\n\n"
  37.                             + " N° Ticket: 532 \n\n\n";
  38.            
  39.             printerService.printString(getDefaultPrinter(), impresion);
  40.  
  41.             // cut that paper!
  42.             byte[] cutP = new byte[] { 0x1d, 'V', 1 };
  43.  
  44.             printerService.printBytes(getDefaultPrinter(), cutP);
  45.            
  46.         } catch (Exception e) {
  47.             e.printStackTrace();
  48.             Mensajes.ERROR(" * NO SE ENCUENTRA LA IMPRESORA: "+getDefaultPrinter()+"\n"+e.getMessage());
  49.         }      
  50.     }
Lo que quiero es meter dentro del ticket arriba, abajo, o donde sea un código QR, que lo tengo en un jpg en por ej: c:/sistema/qr.jpg, o puedo ponerlo dentro de la carpeta del proyecto. pero bueno, tiene una ubicación puntual. Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 24/02/2021, 18:46
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años, 7 meses
Puntos: 120
Respuesta: java agregar imagen en impresion termica con epson tmt20

primero, ve las especifiaciones de la impresora, si tiene soporte para imagenes, generalmente lo tienen pero la imagen debe ser en formato BMP, depende del modelo, previante antes de enviarle los datos de la IMagen debes enviarle los CARACTERES de control para indicarle que los datos siguientes son de imagen, te liaras un poco, pero o bien te curras el manual tecnico o gastas el tiempo en buscar una libreria que lo haga por ti. siendo tu a modo de aprendizaje seria currarte el MANUAL Tecnico , sino busca en la web debe haber muchas librerias para que interactue con la impresora, yo recuerdo haber hecho una hace una decada para la TMU pero bueno, ajaj me da paja buscar

:v pero si recuerdo haber invertido 1 semana en lo del manual y el hacer esa libreria, ahora es mas facil, con los nuevos IDES
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #3 (permalink)  
Antiguo 26/02/2021, 06:15
 
Fecha de Ingreso: octubre-2010
Mensajes: 154
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: java agregar imagen en impresion termica con epson tmt20

Buenos días, logre que salga la imagen, pero termina de imprimirla y me corta el ticket. y lo que necesito que a continuación de esta imagen impresa, continué con el ticket en cuestión. código impresión imagen.

Código Java:
Ver original
  1. /*imprime una imagen en la impresora predefinida.*/
  2.     public static void printIMG() {
  3.         try {
  4.             PrintService ps = PrintServiceLookup.lookupDefaultPrintService();
  5.             DocPrintJob job = ps.createPrintJob();
  6.             DocFlavor DF = DocFlavor.INPUT_STREAM.JPEG;
  7.             FileInputStream FIS = new FileInputStream("C:/SistResto/qr.jpeg");
  8.             Doc doc = new SimpleDoc(FIS, DF, null);
  9.             PrintRequestAttributeSet attrib = new HashPrintRequestAttributeSet();
  10. //          attrib.add(new Copies(1));  
  11. //          job.print(doc, attrib);
  12.             job.print(doc, null);
  13.         } catch (Exception e) {
  14.             e.printStackTrace();
  15.         }      
  16.     }

con ese framgneto de codigo imprime una imagen, pero cuando hago por ej:

Código Java:
Ver original
  1. public static void main(String[] args) {
  2.         Printer.printIMG();  //imprimo imagen
  3.         Printer.p();     /// imprimo ticket.
  4.  
  5.     }

imprime la imagen, corta el papel, y luego imprime el texto. Alguien me puede orientar como hacer para que no realice ese corte o bien que pueda enviar todo junto a imprimir y haga un solo corte?
Una solución a esto, seria mandar a imprimir el ticket, (comentar la linea de corte de papel) y luego la imagen, y que el método de la imagen, corte el papel.
pero me gustaría imprimir primero la imagen arriba y seguido el ticket. De ser posible.

gracias.

Etiquetas: epson, impresion, termica
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 11:29.