Printing 如何避免打印后重启蓝牙打印机?

Printing 如何避免打印后重启蓝牙打印机?,printing,bluetooth,windows-mobile-6.5,32feet,Printing,Bluetooth,Windows Mobile 6.5,32feet,我已经开发了windows mobile 6.1应用程序,可以搜索附近的蓝牙设备并发送文件。我还可以在蓝牙打印机上打印文档 第一次打印功能工作正常,但当我再次打印文档时,需要重新启动打印机,然后再打印 是否有任何解决方案可以避免重新启动打印机 下面是我的打印代码,来自 虽然关闭了客户端流,但打印机似乎要等待一段时间才能重置其会话 尝试在结尾发送一个或字节 根据CPCL参考指南,没有像ESC/p那样的简单重置命令,例如({ESC}@) 在每次打印后进行设备重置似乎是一种过激行为 编辑:sendFi

我已经开发了windows mobile 6.1应用程序,可以搜索附近的蓝牙设备并发送文件。我还可以在蓝牙打印机上打印文档

第一次打印功能工作正常,但当我再次打印文档时,需要重新启动打印机,然后再打印

是否有任何解决方案可以避免重新启动打印机

下面是我的打印代码,来自


虽然关闭了客户端流,但打印机似乎要等待一段时间才能重置其会话

尝试在结尾发送一个或字节

根据CPCL参考指南,没有像ESC/p那样的简单重置命令,例如({ESC}@)

在每次打印后进行设备重置似乎是一种过激行为

编辑:sendFile的SDK示例:

                Byte[] cpclLabel = Encoding.Default.GetBytes("! 0 200 200 406 1\r\n" + "ON-FEED IGNORE\r\n"
                + "BOX 20 20 380 380 8\r\n"
                + "T 0 6 137 177 TEST\r\n"
                + "PRINT\r\n");

以上内容在我的RW420上运行良好,无需在打印之间重置。

感谢josef的回复。但是如何在最后发送EOT字节?我的意思是,我已经在谷歌上搜索过了,但没有找到任何发送EOT标签的具体解决方案。我也阅读了CPCL参考指南,但他们没有详细解释。你在字节缓冲区的末尾添加0x04(EOT char,又名EOF,这些都是相同的)。例如,将最后一行“PRINT\r\n”结尾为“PRINT”+Environment.NewLine+“\x04”;仍然存在相同的问题josef。无法运行“PRINT”+Environment.NewLine+“\x04”。是否有其他解决方案或来源?请在关闭客户端之前尝试(刷新并)关闭网络流。BT打印机似乎仍在等待更多数据,并且没有看到作业完成。此外,手册还规定打印机在作业控制结束命令(PRINT+CR+LF)结束时始终需要打印。可能Environment.NewLine在结尾处不发送CR+LF,请尝试直接使用“\x0d\x0a”对其进行编码。它仍然不工作。josef。您有其他解决方案吗?
                Byte[] cpclLabel = Encoding.Default.GetBytes("! 0 200 200 406 1\r\n" + "ON-FEED IGNORE\r\n"
                + "BOX 20 20 380 380 8\r\n"
                + "T 0 6 137 177 TEST\r\n"
                + "PRINT\r\n");