Este método sirve para generar ticket y enviar la impresión directamente a la impresora.
void imprimirFactura(){ PrinterMatrix printer = new PrinterMatrix(); Extenso e = new Extenso(); e.setNumber(101.85); //Definir el tamanho del papel para la impresion aca 25 lineas y 80 columnas printer.setOutSize(60, 80); //Imprimir * de la 2da linea a 25 en la columna 1; // printer.printCharAtLin(2, 25, 1, "*"); //Imprimir * 1ra linea de la columa de 1 a 80 printer.printCharAtCol(1, 1, 80, "="); //Imprimir Encabezado nombre del La EMpresa printer.printTextWrap(1, 2, 30, 80, "FACTURA DE VENTA"); //printer.printTextWrap(linI, linE, colI, colE, null); printer.printTextWrap(2, 3, 1, 22, "Num. Boleta : " + txtVentaNumeroFactura.getText()); printer.printTextWrap(2, 3, 25, 55, "Fecha de Emision: " + dateFechaVenta.getDate()); printer.printTextWrap(2, 3, 60, 80, "Hora: 12:22:51"); printer.printTextWrap(3, 3, 1, 80, "Vendedor. : "+ txtVentaIdVendedor.getText() +" - " + txtVentaNombreVendedor.getText()); printer.printTextWrap(4, 4, 1, 80, "CLIENTE: " + txtVentaNombreCliente.getText()); printer.printTextWrap(5, 5, 1, 80, "RUC/CI.: " + txtVentaRucCliente.getText()); printer.printTextWrap(6, 6, 1, 80, "DIRECCION: " + ""); printer.printCharAtCol(7, 1, 80, "="); printer.printTextWrap(7, 8, 1, 80, "Codigo Descripcion Cant. P P.Unit. P.Total"); printer.printCharAtCol(9, 1, 80, "-"); int filas = tblVentas.getRowCount(); for (int i = 0; i < filas; i++) { printer.printTextWrap(9 + i, 10, 1, 80, tblVentas.getValueAt(i,0).toString()+"|"+tblVentas.getValueAt(i,1).toString()+"| "+tblVentas.getValueAt(i,2).toString()+"| "+tblVentas.getValueAt(i,3).toString()+"|"+ tblVentas.getValueAt(i,4).toString()); } if(filas > 15){ printer.printCharAtCol(filas + 1, 1, 80, "="); printer.printTextWrap(filas + 1, filas + 2, 1, 80, "TOTAL A PAGAR " + txtVentaTotal.getText()); printer.printCharAtCol(filas + 2, 1, 80, "="); printer.printTextWrap(filas + 2, filas + 3, 1, 80, "Esta boleta no tiene valor fiscal, solo para uso interno.: + Descripciones........"); }else{ printer.printCharAtCol(25, 1, 80, "="); printer.printTextWrap(26, 26, 1, 80, "TOTAL A PAGAR " + txtVentaTotal.getText()); printer.printCharAtCol(27, 1, 80, "="); printer.printTextWrap(27, 28, 1, 80, "Esta boleta no tiene valor fiscal, solo para uso interno.: + Descripciones........"); } printer.toFile("impresion.txt"); FileInputStream inputStream = null; try { inputStream = new FileInputStream("impresion.txt"); } catch (FileNotFoundException ex) { ex.printStackTrace(); } if (inputStream == null) { return; } DocFlavor docFormat = DocFlavor.INPUT_STREAM.AUTOSENSE; Doc document = new SimpleDoc(inputStream, docFormat, null); PrintRequestAttributeSet attributeSet = new HashPrintRequestAttributeSet(); PrintService defaultPrintService = PrintServiceLookup.lookupDefaultPrintService(); if (defaultPrintService != null) { DocPrintJob printJob = defaultPrintService.createPrintJob(); try { printJob.print(document, attributeSet); } catch (Exception ex) { ex.printStackTrace(); } } else { System.err.println("No existen impresoras instaladas"); } //inputStream.close(); }
Pueden descargar el código desde este enlace tambien es necesario que tengan la libreria Util.jar, aca les dejo el enlace para que lo puedan descargar esta comprimido en un rar