T0m*_*aas 6 linux cups printer
如何仅使用命令(无 GUI)检查杯子打印机是否缺纸。
编辑:是否可以使用 python 检查这一点?
EDIT2:我用不同的打印机(EPSON TM-m30)尝试过。当我尝试无纸打印时,它卡在“处理中”。
printer-state = processing
printer-state-message = Rendering completed
printer-state-reasons = none
但我仍然无法获取有关纸张的信息。
我不确定它是否可以帮助你,我从一些读取打印机属性的Python代码创建了json文件: https: //pastebin.com/u97U9TnQ
我们购买了另一台打印机(Star Micronics TUP542),打印机有缺纸传感器:近端纸张传感器,但我找不到任何如何使用该传感器的手册(传感器已插入打印机)。cups 有一些命令吗?或者我需要使用一些不同的工具?
我尝试使用 python 获取属性,这是结果(json): https: //pastebin.com/Z3Tiz5g9
顺便说一句,无论有纸还是无纸,打印机状态始终为。3当打印机缺纸时它应该改变吗?我认为打印机状态原因应该说明缺纸的情况,但总是有['none']
也许我应该尝试 ESC/POS 命令(此处)。我在第157页状态传输找到了一些代码。
n = 1, 49:发送纸张检测器状态
但我不确定n = 1, 49它是什么意思是字符串、十进制还是十六进制值?为什么1和49之间有逗号。
我尝试了这个Python代码:
command = [0x1D, 0x72, 1]
dest="/dev/usb/lp1"
with open(dest,"wb") as file:
file.write(bytearray(command))
with open(dest,"rb") as file:
data = file.read() # hangs
print(data)
Run Code Online (Sandbox Code Playgroud)
但 read 函数挂起并且永远不会返回。
PS:我也尝试了不同的值([0x1D, 0x72, 49],[0x1D, 0x72, 1, 49],[0x1D, 0x72, 1, 0x49]),但没有成功。
顺便说一句,当我使用sudo cat /dev/usb/lp1它时,它会打印很多###。
当我在 cat 之后使用 hexdump 时,我看到这个重复序列:23 06 00 00 00 00 00 00 00
你看过lpstat吗?
例如,获取打印机列表:
~$ lpstat -s
device for Canon_MX920_series: dnssd://Canon%20MX920%20series._ipp._tcp.local/?uuid=00000000-0000-1000-8000-xxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
然后查询有问题的打印:
~$ lpstat -p "Canon_MX920_series"
printer Canon_MX920_series is idle. enabled since Tue 18 Jan 2022 10:49:40 AM CST
scheduler is running
Run Code Online (Sandbox Code Playgroud)