代码之家  ›  专栏  ›  技术社区  ›  Igor Zevaka

热打印机驱动程序故障排除

  •  2
  • Igor Zevaka  · 技术社区  · 15 年前

    嘿,大家好。我正在解决通过蓝牙打印时出现的热打印机问题。所讨论的打印机是extech 3750t,软件正在Windows CE上运行。该驱动程序在Winsock之上实现,并用C++编写。据我所知,连接客房服务都是按照规范进行的。

    问题似乎是,有时(大约十分之一)当打印图像时,打印机会停止打印。然后,当发送下一个打印作业时,它将输出一行(一个像素宽)的垃圾并打印新页。

    驱动程序构建在RTF之上,它将RTF命令和图形转换为打印机特定的字符和转义序列。开发者手册可从以下网址获得:

    http://www.adtech.com.pl/upload/3750T_Developers_Manual.pdf

    在这个阶段,我相当确信这不是一个流量控制问题(除了改变缓冲区的大小 可以 不知何故)

    确认的一件事是,每当打印机出现故障时,它都会向设备发送一个缺纸控制字符,但到那时,挽救它已经为时已晚。

    另外,我认为问题是由发送图像引起的 虽然 文本仍在打印。一个只有5秒左右的脏黑客似乎可以让它消失,但是在生产环境中实现这一点很难,因为文本的大小(字体大小、重量等)会影响所需的延迟量。

    我想我正在寻找如何解决这个问题的建议,而不是明确的解决方案。

    有什么想法吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Igor Zevaka    15 年前

    经过7天的努力,我得到了打印机制造商的一些支持,并通过一次发送一行图像解决了这个问题。这台特殊的打印机使用的是图像压缩机制,其中一个字节代表8位图形,可以选择重复最多129次。

    我尝试过每隔这么多字节中断一次数据流,但这没有帮助。我认为这是因为一个图像不喜欢被分解成多个传输。一次传输一条线(大约72字节)解决了这个问题。