gpt4 book ai didi

java - 如何使用 escpos-2.2 jar 和 jSerialComm-2.5.0 jar 在热敏收据打印机上打印收据

转载 作者:行者123 更新时间:2023-12-02 01:48:51 26 4
gpt4 key购买 nike

我正在使用 Java 构建一个 POS 桌面应用程序,该应用程序使用热敏打印机打印交易收据。我发现我可以使用 escpos 和 JSerialComm Java API 来实现这一点。我从 GitHub 复制了示例代码来尝试 API 是否可以工作。下面的代码应该可以工作,但返回 NullPointerExceptionError。

我不知道我做错了什么。那么我应该怎么做才能至少打印出“Hello World”,看看我的应用程序是否真的可以连接到打印机。帮助!


package com;

import com.fazecast.jSerialComm.SerialPort;
import com.github.terrytsai.escpos.EscPosWriter;
import com.github.terrytsai.escpos.enums.CharacterCodeTable;
import com.github.terrytsai.escpos.enums.CutA;
import com.github.terrytsai.escpos.enums.Height;
import com.github.terrytsai.escpos.enums.Justification;
import com.github.terrytsai.escpos.enums.Pin;
import com.github.terrytsai.escpos.enums.PulseTime;
import com.github.terrytsai.escpos.enums.Width;
import com.github.terrytsai.escpos.serial.SerialFactory;
import com.github.terrytsai.escpos.serial.config.SerialConfig;
import java.io.OutputStream;

public class PrinterClass {

private static PrinterClass printer = null;
private static OutputStream out;
private static EscPosWriter escPos;

private PrinterClass(){
initSerial();
}

protected static void writeReceipt(){
System.out.println("Receipt started...");
escPos = new EscPosWriter(out)
.initialize()
.setCharacterCodeTable(CharacterCodeTable.PC437)
.setJustification(Justification.CENTER)
.setCharacterSize(Width.X3, Height.X3)
.setEmphasize(true)
.text("HELLO WORLD")
.printAndFeedLines(5)
.cut(CutA.PARTIAL)
.sendRealTimeRequestPulse(Pin.TWO, PulseTime.FOUR);
System.out.println("Receipt done!");
}

private static PrinterClass getInstance(){
if(printer == null){
printer = new PrinterClass();
}
return printer;
}

private void initSerial(){
SerialPort port = SerialFactory.com(3, SerialConfig.CONFIG_9600_8N1());
port.openPort();
out = port.getOutputStream();
port.closePort();
}

public static void main(String [] args){
PrinterClass pc = PrinterClass.getInstance();
pc.writeReceipt();
}
}

“我希望它打印收据。但我收到错误:”

"

Exception in thread "main" java.lang.NullPointerException
at com.github.terrytsai.escpos.EscPosWriter.write(EscPosWriter.java:1345)
at com.github.terrytsai.escpos.EscPosWriter.initialize(EscPosWriter.java:1213)
at com.PrinterClass.writeReceipt(PrinterClass.java:30)
at com.PrinterClass.main(PrinterClass.java:58)

"

最佳答案

一台PC上一般有几个com端口,尝试找出哪个是你的打印机端口,不一定是3.相应地更新initSerial方法。

关于java - 如何使用 escpos-2.2 jar 和 jSerialComm-2.5.0 jar 在热敏收据打印机上打印收据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57440607/

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