Printer Zebra saat ini menggunakan bahasa pemrograman ZPL2 yang dikembangkan oleh Zebra Technologies. ZPL2 ini telah memiliki lebih dari 170 perintah dan Commands dari bahasa ZPL2 itu sendiri selalu dimulai dengan simbol caret ^.
Untuk interfacing python ke zebra barcode printer cukup mudah, karena sudah banyak sekali package Python yang sangat memudahkan developer untuk melakukan encoding ZPL2, Seperti zpl atau simple_zpl2. Sedangkan pada artikel kali ini saya akan fokus membahas package simple_zpl2.
Pertama untuk install Simple ZPL2, jalankan command dibawah melalui terminal.
1
pip install simple_zpl2
Contoh script untuk membuat QR Code menggunakan Simple ZPL2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fromsimple_zpl2importZPLDocument,QR_Barcode# membuat object dari class ZPLDocumentzpl=ZPLDocument()# mengatur posisi qrcodezpl.add_field_origin(300,300)# isi dari qrcodeqr_data='QA, TEST QR Code'# Update: tambahan 'QA,' sebelum text QR Code bertujuan untuk menghindari# tiga karakter awal yang hilang.# mengatur model dan ukuruan qrcodeqr=QR_Barcode(qr_data,2,10,zpl._QR_ERROR_CORRECTION_STANDARD)zpl.add_barcode(qr)
Untuk menampilkan hasil text yang sudah di encoding, bisa menggunakan cara dibawah ini:
1
print(zpl.zpl_text)
Jika kamu ingin merender label dengan format PNG terlebih dahulu, untuk mengetahui hasil labelnya sebelum di print langsung, bisa dengan cara berikut:
1
2
3
4
5
6
7
8
9
10
fromPILimportImageimportio# Mengatur ukuran kertas labelpng=zpl.render_png(label_width=4,label_height=6)file=io.BytesIO(png)img=Image.open(file)# Membuka gambar dan penampil gambar default di sistem Kamuimg.show()
Untuk melakukan test print melalui terminal, kamu bisa menjalankan command seperti berikut:
1
python FILE_PRINT.py | lpr -l
Note
Jika tidak menambahkan command -l hasil print akan berantakan atau tidak akan diterjemahkan oleh sistem.
Text Orientation
Ketika kamu ingin mengubah rotasi pada text, kamu hanya perlu mengganti parameter yang sudah disediakan. Berikut beberapa contoh yang bisa digunakan untuk mengubah rotasi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Orientation Normalzpl.add_field_origin(300,100)zpl.add_font('C',zpl._ORIENTATION_NORMAL,10)zpl.add_field_data('armannurhidayat.com')# Mengubah rotasi text 90°zpl.add_field_origin(300,100)zpl.add_font('C',zpl._ORIENTATION_90,10)zpl.add_field_data('armannurhidayat.com')# Mengubah rotasi text 180°zpl.add_field_origin(300,100)zpl.add_font('C',zpl._ORIENTATION_180,10)zpl.add_field_data('armannurhidayat.com')# Mengubah rotasi text 270°zpl.add_field_origin(300,100)zpl.add_font('C',zpl._ORIENTATION_270,10)zpl.add_field_data('armannurhidayat.com')
Note
Sedangkan jika ingin menghubungkan dengan Website Odoo kamu perlu membuat aplikasi tersendiri sebagai jembatan antara Odoo dengan zebra printer menggunakan flask.