ZPL Nedir ve Nasıl Kullanılır?
Zebra Programming Language'e pratik bir giriş: bir etiketin yapısı, gerçekte karşınıza çıkacak komutlar ve koordinatların fiziksel ölçüye nasıl dönüştüğü.
· 3 dk okuma
ZPL — Zebra Programming Language — Zebra termal yazıcıların kabul ettiği komut dilidir. Bir .zpl dosyasını açıp içinde ^XA^FO50,50^A0N,40,40^FDMerhaba^FS^XZ gibi bir şey gördüyseniz, aslında eksiksiz bir etikete bakıyordunuz: yazıcıya neyi nereye koyacağını ve ne büyüklükte çizeceğini söyleyen bir dizi komut.
PDF ya da bir görselden farklı olarak ZPL dosyası piksel değil niyet tarif eder. Aynı dosya 203 dpi bir yazıcıda ve 300 dpi bir yazıcıda farklı fiziksel çıktı verir; bir etiketin aniden yanlış çıkmasının en yaygın nedeni de tam olarak budur.
Bir etiketin yapısı
Her etiket iki komutla sınırlanan bir bloktur:
^XA etiketi başlatır
... alan tanımları
^XZ etiketi bitirir ve bastırır
Bir dosya birçok blok içerebilir. Elli kargo etiketlik bir parti, tek bir metin dosyasındaki elli ^XA … ^XZ çiftidir ve yazıcı her birini ayrı bir baskı işi olarak ele alır.
Alanlar
Blok içinde iş, alanlar hâlinde düzenlenir. Bir alanın başlangıç noktası, türü ve verisi vardır:
^FO50,50 alan başlangıcı: 50 nokta sağa, 50 nokta aşağı
^A0N,40,40 yazı tipi 0, normal yön, 40 nokta yükseklik ve genişlik
^FDMerhaba Dunya^FS alan verisi, ardından alan ayırıcı
En çok kullanacağınız komut ^FO'dur. İki sayısı milimetre değil nokta cinsindendir — yoğunluk meselesi de burada devreye girer.
Nokta, yoğunluk ve fiziksel ölçü
Yazıcı yoğunluğu inç başına nokta (dpi) veya milimetre başına nokta (dpmm) olarak verilir:
| Yoğunluk | dpmm | 1 inç | | --- | --- | --- | | 203 dpi | 8 dpmm | 203 nokta | | 300 dpi | 12 dpmm | 300 nokta | | 600 dpi | 24 dpmm | 600 nokta |
Yani ^FO400,0 komutu, 203 dpi bir yazıcıda alanı soldan iki inç içeriye yerleştirirken, 300 dpi bir yazıcıda yalnızca 1,33 inç içeriye koyar. Daha önce sığan bir etiket aniden kenardan taşıyorsa, koordinatları düzenlemeye başlamadan önce yazıcı modelinin değişip değişmediğine bakın.
Barkodlar
Barkodlar, verinin önüne bir barkod komutu gelen alanlardır:
^BY2 modül genişliği 2 nokta
^BCN,100,Y,N,N Code 128, 100 nokta yükseklik, değeri altına yaz
^FD123456789^FS
^BY dar çubuk genişliğini belirler; bu da sembolün toplam genişliğini kontrol eder. Bu değeri fazla düşük tutmak, basılan bir barkodun okunmamasının olağan nedenidir: 203 dpi'de modül genişliğinin 2'nin altına inmemesi makul bir kuraldır.
Diğer yaygın sembolojiler de aynı kalıbı izler: Code 39 için ^B3, EAN-13 için ^BE, QR kod için ^BQ.
Kutular ve çizgiler
^GB bir kutu çizer; yüksekliğine eşit kalınlıktaki bir kutu ise çizgi olur:
^FO20,20^GB380,180,3^FS 3 nokta çerçeveli 380×180 kutu
^FO20,220^GB380,0,3^FS yatay çizgi
Türkçe karakterler
Yazıcı varsayılan olarak baytları eski bir kod sayfasına göre yorumlar; Türkçe karakterlerin sık sık kutu olarak basılmasının nedeni budur. Etiketin başına ^CI28 eklemek yazıcıyı UTF-8'e geçirir:
^XA
^CI28
^FO50,50^A0N,40,40^FDÖzel Ürün^FS
^XZ
Yazı tipinin de o karakterleri içermesi gerekir. Yazı tipi 0, Latin-1 ve Türkçe karakterlerin çoğunu kapsar; ğ harfi bulunmayan bir yazı tipi, kod sayfası ne derse desin yine kutu basar.
Basmadan kontrol etmek
ZPL öğrenmenin en hızlı yolu bir sayıyı değiştirip ne olduğunu görmektir. Kodunuzu ZPL Görüntüleyici aracına yapıştırın; seçtiğiniz yoğunluk ve etiket ölçüsünde, yazıcının üreteceğinin aynısını gösterir. Sonucu birine göndermeniz gerektiğinde ZPL'den PDF'e aracı doğru fiziksel ölçüde, baskıya hazır bir belge üretir.
Ezberlemeye değer komutlar
| Komut | İşlevi |
| --- | --- |
| ^XA / ^XZ | Etiketi başlatır ve bitirir |
| ^FO x,y | Nokta cinsinden alan başlangıcı |
| ^A0N,h,w | Ölçeklenebilir yazı tipi, nokta cinsinden yükseklik ve genişlik |
| ^FD … ^FS | Alan verisi ve alan sonu |
| ^GB w,h,t | Kutu veya çizgi |
| ^BY w | Barkod modül genişliği |
| ^BC / ^B3 / ^BE / ^BQ | Code 128 / Code 39 / EAN-13 / QR |
| ^CI28 | UTF-8'e geçer |
| ^PQ n | n kopya bastırır |
Bir depoda veya e-ticaret operasyonunda karşınıza çıkacak etiketlerin büyük çoğunluğunu okumak, hatasını bulmak ve değiştirmek için bu kadarı yeterlidir.