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