我正在编写代码(在 C# 中)将收据打印到 ESCPOS 打印机,目前使用 EPSON TM20II 进行测试。我直接在 Linux 上的 COM 端口上打印,并在 Windows 上通过 USB 上的模拟 COM 端口进行打印。虽然我可以正常打印任何类型的评论,但我在剪纸时遇到了问题。
更具体地说,如果我在其余内容之后发送剪纸命令 ( GS V 0
) 并将整个字节流发送到端口,则打印机会在打印最后几行内容之前剪纸。
一开始我以为是时间问题,所以我尝试发送剩下的内容,然后等待一小段时间再发送Cut命令,但无济于事。
这是我使用的代码示例以及我发送到打印机的缓冲区内容,该打印机未能在正确的位置切割纸张。
printer.Reset();
printer.SetTextAlignment(TextAlignment.Center).PrintTextLine(" 1234567890 ");
printer.SetTextSize(TextSize.Quadruple).PrintTextLine(" 1234567890 ");
printer.CutPaper();
printer.Print();
产生以下(十六进制)输出发送到打印机:
1B-40-1B-74-0F-1B-61-01-20-31-32-33-34-35-36-37-38-39-30-20-0D-0A-1B-21-30-20-31-32-33-34-35-36-37-38-39-30-20-0D-0A-1D-56-00