Wir, IT-Spezialisten, haben oft die Aufgabe, etwas Einfaches und Einmaliges zu drucken - zum Beispiel einen Benutzernamen und ein Passwort für einen neuen Mitarbeiter, ein Ticket für einen Installateur oder ähnliches. So viel Papier und Patrone auszugeben ist sehr teuer. Gleichzeitig gibt es Drucker mit extrem billigem Hochgeschwindigkeitsdruck, an die sich selten jemand erinnert, obwohl wir sie jeden Tag viele Male sehen. Wir sprechen über Check-Thermodrucker.

Ich beginne vielleicht mit einer Demo, damit Sie die Druckgeschwindigkeit von 20 cm pro Sekunde schätzen können:
( - , . :) )
. 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 - – . , , , « !» — , .
Endlich - ein Anwendungsbeispiel. Letztes Wochenende feierte meine Schule ihren nächsten Geburtstag (bis zum 143.) und traditionell organisierten Schüler verschiedene Wettbewerbe und Unterhaltungsveranstaltungen für Grundschulklassen und Absolventen. Ich war für Bingo verantwortlich - auf Knopfdruck druckte mein Drucker Tickets für Spieler und Zahlen wurden auf der Tafel angezeigt. Mit dem QR-Code auf dem Ticket konnte überprüft werden, ob der Spieler die Zahlen während des Spiels korrekt durchgestrichen hat:

Aus Gründen der Vandalismusresistenz wurde der Orange Pi in einem Sperrholzpodest versteckt, fest mit dem Drucker verschraubt, und der Befehl zum Drucken von Tickets wurde auf den mit dem GPIO verbundenen Tasten angezeigt. Aus Sicherheitsgründen wurde ein I2C-Bildschirm hinzugefügt, auf dem die IP-Adresse des Orange Pi angezeigt wurde, sodass wir im Falle eines Falls wissen, wie wir über SSH darauf zugreifen können.