Pencetakan printer thermal yang murah dan cepat

Kami, spesialis IT, sering kali memiliki tugas untuk mencetak sesuatu yang sederhana dan satu kali - misalnya, nama pengguna dan kata sandi untuk karyawan baru, tiket untuk pemasang, atau sesuatu seperti itu. Menghabiskan kertas dan kartrij seperti itu sangat mahal. Pada saat yang sama, ada printer dengan pencetakan kecepatan tinggi yang sangat murah, yang jarang diingat oleh siapa pun, meskipun kita sering melihatnya setiap hari. Kita berbicara tentang memeriksa printer termal.



Saya akan mulai, mungkin, dengan demo sehingga Anda dapat menghargai kecepatan cetak 20 cm per detik:



( - , . :) )


. 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 - – . , , , Β« !Β» β€” , .


Akhirnya - contoh aplikasi. Akhir pekan lalu, sekolah saya merayakan ulang tahun berikutnya (sudah yang ke 143), dan secara tradisi, siswa sekolah menengah atas mengadakan berbagai kontes dan hiburan untuk tingkat sekolah dasar dan lulusan. Saya bertanggung jawab atas Bingo - dengan menekan tombol, printer saya mencetak tiket untuk pemain, dan nomor ditampilkan di papan tulis. Kode QR pada tiket memungkinkan untuk memeriksa apakah pemain mencoret angka dengan benar selama pertandingan:



Untuk resistensi perusak, Orange Pi disembunyikan di podium kayu lapis, disekrup erat ke printer, dan perintah pencetakan tiket ditampilkan pada tombol yang terhubung ke GPIO. Untuk keamanan, layar I2C ditambahkan, di mana alamat IP Orange Pi ditampilkan, dalam hal ini, untuk mengetahui cara mengaksesnya melalui SSH.

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


All Articles