尝试解码 ESC/POS 数据,其中我遇到了 GS 8 L 命令来发送光栅数据,根据 文档,宽度和高度应为 [40x22](这是 bin 的第 14 和 16 个字节)文件),但是仅存在 64 字节的数据。有趣的是,p1 变量是 64 字节,但我不明白为什么 xL、xH、yL、yH 位指向不同的大小。
当我尝试将这些字节发送到打印机时,我得到了所需的输出。但当自己尝试解析时,图像数据不足。我使用的是 Epson TM-T82x 打印机。 但奇怪的是,如果我修改 d1..dk 位中的任何数据,我不会得到任何输出(理想情况下我应该得到一些格式错误的输出)
我也尝试过使用 esc-pos 工具和各种其他 esc/pos 解码方法。所有错误都显示数据不足。 仅当我尝试从 Windows 打印时才会出现此问题,从 Linux 打印内容时,输出完全可读。
即使有足够的数据长度也无法打印的原因是因为tone参数是一个未定义的值。
根据规范页,第 10 个字节“a”的唯一可能值指定了存储数据的音调。数据是 48(0x30) 或 52(0x34),但您提供的数据中指定了 49(0x31)。
因此,认为它不被视为有效的 ESC/POS 命令并被忽略。
除了图像数据量不足之外,Windows 上创建 ESC/POS 命令的程序似乎也有问题,请排查。
随着 .NET 8.0 的发布,我修复了我的工具在相关情况下中断异常的问题,以便它可以继续处理。
它只是显示一条消息,表明图形数据无效,但允许您继续处理。