我正在使用此教程 link发送一个字符串以将其打印出来。然而,即使打印机显示“正在接收数据”,数据也不会被打印。在代码本身中,libusb_bulk_transfer 返回我想要打印的字符串中的字符数。
有人知道我可能做错了什么吗?也许我应该指出,我正在使用 OsX,当我尝试按照常规程序打印文件时,打印机工作正常。
谢谢!
最佳答案
将字符串发送到现代光栅图像或页打印机不太可能达到预期的效果(即它不会打印字符串) - 打印机将尝试将其解释为命令或图像数据。任何特定打印机的控制都是特定于该打印机型号的,并且在现代打印机上相当复杂。例如,大多数喷墨打印机,主机 PC 生成光栅图像并发送图像数据。对于 PostScript 打印机,会生成 PostScript 语言的页面描述(类似于 PDF 文档)并将其发送到打印机。
操作系统通过打印机驱动进行打印;操作系统以其自己的格式构建页面描述,打印机驱动程序将其转换为打印机专有格式。
如果您想打印文本,通常必须通过操作系统服务(除非您正在编写打印机驱动程序本身),而不是通过 USB 直接传输数据。唯一的异常(exception)可能是当您有 PostScript 文件和 PostScript 打印机时 - 那么该文件已经采用打印机的语言。
此外,在USB中,打印设备已经被定义device class 。这允许您获取有关打印机及其功能的信息,以便您可以适本地访问它(同样是打印机驱动程序和操作系统的工作)
关于c++ - libusb 传输字符串,但打印机不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43961274/