gpt4 book ai didi

java - 如何向 USB 打印机发送 ESC/POS 命令?

转载 作者:太空宇宙 更新时间:2023-11-04 12:05:12 24 4
gpt4 key购买 nike

我的目标是以编程方式打开现金抽屉,但我没有找到有关 Java 如何与 Windows 端口交互的详细信息,因此我无法让它工作。这些是我尝试过的方法(Java控制台中没有错误):

public void cashdrawerOpen()   {

String code1 = "27 112 0 150 250"; //decimal
String code2 = "1B 70 00 96 FA"; //hexadecimal
String code = "ESCp0û."; //ascii

PrintService service = PrintServiceLookup.lookupDefaultPrintService();
System.out.println(service.getName());
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
DocPrintJob pj = service.createPrintJob();
byte[] bytes;
bytes=code2.getBytes();
Doc doc=new SimpleDoc(bytes,flavor,null);
try {
pj.print(doc, null);
} catch (PrintException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


public void cashdrawerOpen2(){
String code1 = "27 112 0 150 250";
String code2 = "1B 70 00 96 FA";
String code = "ESCp0û.";
FileOutputStream os = null;
try {
os = new FileOutputStream("USB001:POS-58");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
PrintStream ps = new PrintStream(os);
ps.print(code1.getBytes());
ps.close();
}

然后我开始玩cmd,特别是this线程,但是当我执行命令“copy/b open.bat USB001”时,它只是说:“覆盖 USB001 ?” (是/否/全部)'

有什么想法吗?

最佳答案

已解决。

我没有找到如何通过 USB 发送命令,我必须模拟 LPT 端口。

如果您的打印机附带名为 TM Virtual Port Driver 的驱动程序或类似的驱动程序(就我而言):

  1. 安装它并使用 GUI 配置打印机连接。
  2. 利用 Java 方法

如果没有:

  1. 在控制面板中共享打印机。
  2. 以管理员身份打开 cmd
  3. NET USE LPT1\[计算机名称]\打印机 /Persistent:是(在win8.1中不起作用)
  4. 来自 Java:

    public void cashdrawerOpen(){ 
    String code2 = "1B700096FA"; // my code in hex
    FileOutputStream os = null;
    try {
    os = new FileOutputStream("LPT1:POS-58");
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    }
    PrintStream ps = new PrintStream(os);
    ps.print(toAscii(code2));
    ps.close();
    }

    public StringBuilder toAscii( String hex ){
    StringBuilder output = new StringBuilder();
    for (int i = 0; i < hex.length(); i+=2) {
    String str = hex.substring(i, i+2);
    output.append((char)Integer.parseInt(str, 16));
    }
    return output;

    }

关于java - 如何向 USB 打印机发送 ESC/POS 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40444457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com