Impresión barata y rápida de la impresora térmica

Nosotros, los especialistas de TI, a menudo tenemos la tarea de imprimir algo simple y único, por ejemplo, un nombre de usuario y contraseña para un nuevo empleado, un boleto para un instalador o algo así. Gastar papel y cartuchos así es muy costoso. Al mismo tiempo, hay impresoras con impresión de alta velocidad ultra barata, que casi nadie recuerda, aunque las vemos todas las veces muchas veces. Estamos hablando de impresoras térmicas de cheques.



Comenzaré, quizás, con una demostración para que pueda apreciar la velocidad de impresión de 20 cm por segundo:



( - , . :) )


. 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:


# lsusb
Bus 006 Device 002: ID 2730:0fff Citizen

USB endpoints, ID :


# lsusb -v -d 2730:0fff | grep bEndpointAddress
        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 - – . , , , « !» — , .


Finalmente, un ejemplo de aplicación. El fin de semana pasado, mi escuela celebró su próximo cumpleaños (ya el 143), y por tradición, los estudiantes de secundaria organizaron varios concursos y entretenimientos para estudiantes de primaria y graduados. Fui responsable del Bingo: con solo presionar un botón, mi impresora imprimió boletos para los jugadores y los números se mostraban en el tablero. El código QR en el boleto permitió verificar si el jugador tachó los números correctamente durante el juego:



Para resistencia al vandalismo, el Orange Pi estaba escondido en un podio de madera contrachapada firmemente atornillado a la impresora, y el comando de impresión de boletos se mostraba en los botones conectados al GPIO. Por seguridad, se agregó una pantalla I2C, en la que se mostraba la dirección IP del Orange Pi, en cuyo caso, para saber cómo acceder a través de SSH.

Source: https://habr.com/ru/post/undefined/


All Articles