我们作为IT专家,经常要完成一次简单的打印任务-例如,新员工的用户名和密码,安装人员的票据或类似的内容。这样花费纸张和墨盒非常昂贵。同时,有些打印机具有超便宜的高速打印功能,尽管我们每天都多次看到它们,但很少有人记得。我们正在谈论支票热敏打印机。

我可能会从一个演示开始,以便您可以欣赏每秒20厘米的打印速度:
( - , . :) )
. Citizen CT-S2000, – 58 80 . , , , . , : , , ( !).
80 . 58 . , .. , .

COM- ( USB), Ethernet, WiFi Bluetooth, .
Citizen – Windows, PPD CUPS, Java. , , «ESC/POS».
. Citizen , (!) – - , Windows.
USB COM 25 pin, 9 pin – USB. Windows COM-, .
– ( ) . , , – .

ESC/POS, Python- python-escpos . Orange PI PC Debian, .
lsusb ID , 2730:0fff:
Bus 006 Device 002: ID 2730:0fff Citizen
USB endpoints, ID :
bEndpointAddress 0x81 EP 1 IN
bEndpointAddress 0x02 EP 2 OUT
Python:
from escpos import Usb
p = printer.Usb(0x2730, 0x0fff, 0, 0x81, 0x02)
, , Epson TM-T88III, , , , — . .
– , ESC/POS:
""" , , """
p.set(font='a', align=u'left', height=3)
""" ( DPI!) """
p.image('/home/test/example.png')
""" (- ,
) """
p.text("Hello, world!\n")
""" QR- """
p.qr("https://gbougakov.dev", size=5, center=True)
""" - ( ,
checksum) """
p.barcode('1324354657687','EAN13')
p.barcode('123456', 'CODE39')
""" - –
"""
p.soft_barcode('code39', '123456')
""" : """
p.cut(mode='PART')
""" : """
p.cut()
"""
( RJ-25): """
p.cashdraw(2)
p.cashdraw(5)
– . , , , . – 24 , – .

Raspberry Pi - – . , , , « !» — , .
最后-应用程序示例。上周末,我的学校庆祝了下一个生日(已是143岁),根据传统,高中学生为小学年级和毕业生组织了各种竞赛和娱乐活动。我负责宾果游戏-按下一个按钮,我的打印机就为玩家打印了门票,并且数字显示在板上。门票上的QR码可以检查玩家在游戏中是否正确划掉了数字:

为了抵御破坏,将Orange Pi隐藏在胶合板平台中,并拧紧在打印机上,并且在与GPIO连接的按钮上显示了票据打印命令。为了安全起见,添加了一个I2C屏幕,在该屏幕上显示了Orange Pi的IP地址,在这种情况下,要知道如何通过SSH访问它。