Как печатение Tiquete Продажи в принтере POS с Java

В настоящее время у меня есть недостаток, я делаю приложение в Java для коммерческого помещения. Помещение считает с принтером EPSON серии TM (Также такая знакомая как принтер с термопереносом или POS).

Разработчик не предлагает большую информацию и действительно то, что мне удается найти в Интернете, не является очень ясным для меня, я нуждаюсь в том, чтобы знать, как мне удается напечатать tiquete продажи, сходной со следующим, осуществляя какой-то метод в Java и заранее большое спасибо!

introducir la descripción de la imagen aquí

Я добавляю следующее, чтобы показывать результаты на основании подсказки, данной на следующей документации: docs.oracle.com/javase/tutorial/2d/printing/printable.html

Когда я реализую печать ticket, стоимость выходит приведенной в беспорядок, кроме которого, когда описание слишком длинное, теряется стоимость цены на продукт. Когда был бы должен осуществляться какой-то вид разрыва линии. Я присоединяю изображение:

introducir la descripción de la imagen aquí

0
задан 21.03.2019, 00:45
1 ответ

QuerГ, - чтобы говорить, что уже мне удалось реализовать ticket, такой который как это mostrГ© в вопросе. Я был должен исследовать достаточно. EncontrГ© одна librerГ - в или API, названный Полезным, которого он позволяет показывать tamaГ±o бумаги, tambiГ©n с тех пор, как колонна, в которую колонна документа ты хочешь написать, и tambiГ©n приносит один mГ©todo, что позволяет выравнивать тексты в правую сторону или левую сторону откуда где deberГ, - чтобы заканчиваться или инициализироваться, чтобы писать в файле.

Присоединил изображение

introducir la descripción de la imagen aquí

Присоединил один cГіdigo примера, хотя quizГЎs он сможет производить сомнение, кроме того, что, если он требует использования JAR, о котором я упоминаю ранее, также, я оставляю почту контакта, если требуют algГєn типа aclaraciГіn, или я опираюсь.

Почта: ignitedevsoft@gmail.com

import br.com.adilson.util.Extenso;
import br.com.adilson.util.PrinterMatrix;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.text.DecimalFormat;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.swing.JOptionPane;
import javax.swing.JTable;

void imprimirTicket(JTable jtbl_venta, String subTotal, String total, String dineroR, String devolucion){
try {

    PrinterMatrix printer = new PrinterMatrix();
    Extenso e = new Extenso();

    e.setNumber(20.30);
    //Definir el tamanho del papel para la impresion de dinamico y 32 columnas
    int filas = jtbl_venta.getRowCount();
    int tamaño = filas+40;
    printer.setOutSize(tamaño, 80);

    //Imprimir = 1ra linea de la columa de 1 a 32
    printer.printTextWrap(0, 1, 5, 80, "===================================================================");
    printer.printTextWrap(1, 1, 35, 80, "CARNIVOROS"); //Nombre establecimiento
    printer.printTextWrap(3, 1, 31, 80, "Barrio Bellavista"); //Barrio
    printer.printTextWrap(4, 1, 37, 80, "Clle 47"); //Direccion
    printer.printTextWrap(5, 1, 38, 80, "12345"); //Codigo Postal
    printer.printTextWrap(6, 1, 10, 41, "Fecha"); //Aqui va la fecha de recibo
    printer.printTextWrap(6, 1, 38, 80, "Hora"); //Aqui va la hora de recibo
    printer.printTextWrap(7, 1, 3, 80, "Numero"); //Numero del recibo - FACTURA O PEDIDO
    printer.printTextWrap(8, 1, 3, 80, "Atiende"); //Nombre Cajero
    printer.printTextWrap(9, 1, 3, 80, "Cliente");//Nombre del Cliente
    printer.printTextWrap(10,1, 5, 80, "——————————–——————————–——————————–——————————–——–———–——–—–———–——–———");
    printer.printTextWrap(11,1, 7, 80, "ID   DESCRIPCION                        CANT           PRECIO");
    printer.printTextWrap(12,1, 0, 80, " ");

    for (int i = 0; i < filas; i++) {
        int p = 13+i; //Fila

        printer.printTextWrap(p , 1, 7, 19 , jtbl_venta.getValueAt(i,0).toString());
        printer.printTextWrap(p , 1, 12, 42 , jtbl_venta.getValueAt(i,1).toString());
        printer.printTextWrap(p , 1, 47, 49, jtbl_venta.getValueAt(i,2).toString());

        String pre= printer.alinharADireita(10, jtbl_venta.getValueAt(i,3).toString());
        printer.printTextWrap(p , 1, 57, 80, pre);

        //String inp= printer.alinharADireita(7,punto_Venta.jtbl_venta.getValueAt(i,6).toString());
        //printer.printTextWrap(p , 1, 25, 32, inp);
    }
    DecimalFormat formateador = new DecimalFormat("#.###");

    String sub= printer.alinharADireita(10, subTotal);
    printer.printTextWrap(filas+17, 1, 5, 80, "Subtotal: ");
    printer.printTextWrap(filas+17, 1, 20, 80, "$"+sub);

    String tot= printer.alinharADireita(10, total);
    printer.printTextWrap(filas+18, 1, 5, 80, "Total a pagar: ");
    printer.printTextWrap(filas+18, 1, 20, 80, "$"+tot);

    String efe= printer.alinharADireita(10,dineroR);
    printer.printTextWrap(filas+19, 1, 5, 80, "Efectivo : ");
    printer.printTextWrap(filas+19, 1, 20, 80, "$"+efe);

    String cam= printer.alinharADireita(10,devolucion);
    printer.printTextWrap(filas+20, 1, 5, 80, "Cambio : ");
    printer.printTextWrap(filas+20, 1, 20, 80, "$"+ cam);

    printer.printTextWrap(filas+21, 1, 5, 80, "——————————–——————————–——————————–——————————–——–———–——–—–———–——–———");
    printer.printTextWrap(filas+22, 1, 26,80, "!Gracias por su preferencia!");
    printer.printTextWrap(filas+23, 1, 30, 80, "WorkIt App - v1.0.0");
    printer.printTextWrap(filas+24, 1, 31, 80, "Software a Medida");
    printer.printTextWrap(filas+25, 1, 25, 80, "Contacto: workitapp@gmail.com");
    printer.printTextWrap(filas+26, 1, 5,80, "===================================================================");


    ///CREAR ARCHIVO EN CARPETA DEL PROYECTO PARA PEDIDOS
    printer.toFile("C:\\tmp\\impresion.txt");
    FileInputStream inputStream = null;

    try {
        inputStream = new FileInputStream("C:\\tmp\\impresion.txt");
    } catch (FileNotFoundException ex) {
        ex.printStackTrace();
        JOptionPane.showMessageDialog(null, "Error al guardar");
    }
    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();
    //imprimirFin(subTotal, total, dineroR, devolucion); //ESTE METODO NO SE UTILIZARA

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, "Error al imprimir "+e);
    }

}

Помнили, что класс PrinterMatrix и Пространный они требуют, импортировать JAR, что уже они habГ - в упомянутый.

Надеялся, что он может подавать кого-то.

1
ответ дан 02.12.2019, 05:21