Selamlar! Uzun zamandır beni zor durumda bıracak bir sorunla karşılaşmıyordum… bugüne kadar. 🙂 TSPL komutlarıyla Flutter üzerinde nasıl çalışılır kısa bir yazı yazmak istiyorum.
Bir mobil uygulama kullanarak, Bluetooth üzerinden bir el terminaline veri göndermek istiyorsunuz. Bu yazma biçimlerinden en popüleri ESC fakat kağıdın boyutu gibi durumlara ESC üzerinde parametre veremiyorsunuz.
TSPL komutlarıyla, kullanacağınız etiketin boyutlarını önceden tanımlayıp, bu etiketin üzerine koordinat sistemindeki gibi başlangıç noktaları verip istediğiniz veriyi yazarken, daha sonrasında kağıdın boyutunu dikkate alarak otomatik olarak cut-feed işlemi yaptırabiliyorsunuz.
Esc_pos_utils ve flutter_ble_plus kütüphanelerini kullandığım ufak projede eğer hangi Bluetooth servisine veri yazacağınızı biliyorsanız, esc_pos_utils’i dahi kullanmanıza gerek yok.
İlk aşamada printer cihazınızla, mobil uygulamanız arasında bağlantıyı oluşturun ve bağlantıyı oluşturduktan sonra BluetoothDevice objesini, oluşturacağınız bir printData fonksiyonuna gönderin.
bytes kısmında yazdığım TSPL komutları, 40 mm genişliğinde, 20 mm yüksekliğinde bir etiketin termal printer içerisinde olduğunu belirtiyorum. Ve bu etiketlerin arasında 2 mm boşluk olduğunu belirtiyorum. SET CUTTER 1 yazarak, etikete yazı bastıktan sonra cut işlemi yapmasını sağlıyorum. CLS komutu ise buffer’ı temizler.
Text komutu ise belirttiğiniz koordinatlara istediğiniz yazıyı yazmanızı sağlar. Peki yanındaki rakamlar ve sayılar ne anlama gelmekte?
Font büyüklüğünü ayarlayabilmeniz, x-y koordinatlarını belirleyebilmeniz ve yatay-dikey çarpımları ayarlayabilmeniz için elimde bulunan TSPL dökümanından yukarıdaki ekran görüntüsünü sizlere sunuyorum.
Kodu çalıştırdığınızda yukarıdakine benzer bir sonuç almış olacağınızı umut ediyorum. İyi kodlamalar. 🙂
Okuyucuya Not
Merhaba okuyucu! Blogum son zamanlarda yüksek trafik almaya başladı ve bu durumdan memnunum fakat aynı zamanda siz ziyaretçileri tatmin edememekten endişeliyim. 🙂 Eğer yazılarım ile ilgili bir tavsiyeniz olursa mail adresimden bana ulaşabilir veya Twitter üzerinden direct message gönderebilirsiniz.
Sağlıcakla kalın!