Impressão barata e rápida da impressora térmica

Nós, especialistas em TI, geralmente temos a tarefa de imprimir algo simples e único - por exemplo, um nome de usuário e senha para um novo funcionário, um ticket para um instalador ou algo parecido. Gastar papel e cartucho assim é muito caro. Ao mesmo tempo, existem impressoras com impressão em alta velocidade e barata, das quais raramente alguém se lembra, embora as vejamos todos os dias várias vezes. Estamos falando de impressoras térmicas de cheque.



Começarei, talvez, com uma demonstração para que você possa apreciar a velocidade de impressão 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 - um exemplo de aplicação. No fim de semana passado, minha escola comemorou seu próximo aniversário (até o 143º) e, por tradição, os alunos do ensino médio organizaram vários concursos e entretenimento para alunos do ensino fundamental e médio. Eu era responsável pelo Bingo - ao pressionar um botão, minha impressora imprimia bilhetes para jogadores e os números eram exibidos no quadro. O código QR no tíquete permitiu verificar se o jogador cruzou os números corretamente durante o jogo:



Para resistência a vandalismo, o Orange Pi estava escondido em um pódio de madeira compensada, parafusado firmemente na impressora, e o comando de impressão de tíquetes era exibido nos botões conectados ao GPIO. Por segurança, foi adicionada uma tela I2C, na qual o endereço IP do Orange Pi era exibido, para que, no caso, soubéssemos fazer login via SSH.

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


All Articles