我正在编写代码(在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
答案 0 :(得分:0)
Kalhspera!
切割机构和热敏打印头之间有一段距离。因此,在发送剪切纸命令之前,您必须稍微送纸。一种解决方案是在发送剪切纸命令之前发送一些换行符。