Retish Pillai Ответов: 2

Как открыть кассовый ящик с помощью java-программы


Привет,

Пожалуйста, помогите мне, если кто-нибудь знает, как открыть кассовый ящик с помощью java-программы. При условии, что принтер подключен через USB, а кассовый ящик подключен к принтеру (RJ12). Принтер поддерживает ESC/POS. Я сослался на руководство принтера и знаю команду открыть кассовый ящик. {27, 112, 48, 55, 121}.

Что я уже пробовал:

попробовал с несколькими советами в google

Kornfeld Eliyahu Peter

Вы должны прочитать инструкцию от производителя банкомата...Все ответы там...

2 Ответов

Рейтинг:
2

Retish Pillai

public void cashdrawerOpen() {
        
        byte[] open = {27, 112, 48, 55, 121};
//        byte[] cutter = {29, 86,49};
        String printer = PrinterName;
        PrintServiceAttributeSet printserviceattributeset = new HashPrintServiceAttributeSet();
        printserviceattributeset.add(new PrinterName(printer,null));
        PrintService[] printservice = PrintServiceLookup.lookupPrintServices(null, printserviceattributeset);
        if(printservice.length!=1){
            System.out.println("Printer not found");
        }
        PrintService pservice = printservice[0];
        DocPrintJob job = pservice.createPrintJob();
        DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
        Doc doc = new SimpleDoc(open,flavor,null);
        PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
        try {
            job.print(doc, aset);
        } catch (PrintException ex) {
            System.out.println(ex.getMessage());
        }
    }


Pramod Talwar

Может ли кто-нибудь помочь с получением статуса денежного ящика(открыт/закрыт)?

Рейтинг:
19

Patrice T

Java-не моя специальность,но я знаю эту проблему.
Вы хотите напечатать это командный побег к принтеру как сырой данные.

Вам нужно искать в интернете с помощью :
- Печати Java исходные данные
- Java print escape команда

Этот вопрос был задан на многих форумах, вы должны увидеть, какой ответ будет соответствовать вашим потребностям.


Retish Pillai

Большое спасибо. Я нашел одну статью, протестировал ее и добился успеха. Большое подспорье

Member 12609609

привет, могу я узнать, какой пример, который вы нашли, является работой? можете ли вы поделиться со мной , я тоже делаю этот проект, thx

Patrice T

Я нашел пример, который, как я знаю, работает, потому что я не использую Java.
Но я знаком с сырой печатью с помощью языков xHarbour/Harbour/Clipper/FoxPro/dBase, восходящих к эпохе DOS.

Retish Pillai

Извиняюсь...
Я didnot посетили эту страницу за долгое время.

здесь я добавляю код, который работает



общественного недействительными cashdrawerOpen() {

байт [] открыт = {27, 112, 48, 55, 121};
// byte[] cutter = {29, 86,49};
Струнный принтер = Имя_принтера;
PrintServiceAttributeSet printserviceattributeset = новый HashPrintServiceAttributeSet();
printserviceattributeset.добавить(новый Имя_принтера(принтер,нуль));
PrintService[] printservice = PrintServiceLookup.lookupPrintServices(null, printserviceattributeset);
if (printservice.длина!=1){
Системы.из.код println("принтер не найден");
}
PrintService pservice = printservice[0];
DocPrintJob job = pservice.createPrintJob();
Документа вкус = документа.BYTE_ARRAY.Автоопределением;
Doc doc = new SimpleDoc(open, flavor,null);
PrintRequestAttributeSet aset = новый HashPrintRequestAttributeSet();
пробовать {
работа.печать(док, Асет);
} catch (PrintException ex) {
Системы.из.код println(исх.функции GetMessage());
}
}