Anasayfa » Forum

El terminali Barkod...
 

El terminali Barkod Yazdırma  

  RSS
Murat güler
(@Muratguler)
Yeni Üye

Merhaba 

Barkod yazdırma programlarında oluşturulan değişkenlere el terminalinden nasıl değer gönderebilirim ?

İyi Günler

Alıntı
Gönderildi : 13/03/2019 11:45
Ali UYSAL
(@aliuysal)
Yeni Üye Forum Yöneticisi

Merhabalar;

Biraz daha detay verebilirmisiniz? Hangi etiket programını kullanıyorsunuz? Örneğin ben nicelabel ile çalışıyorum, fakat nicelabel'da oluşturulan etiket dosyasıyla çalışabilmek, değişkenlere değer atayabilmek için kendi SDK'sını kullanmak durumundasınız. 
El terminali için SDK desteği veren bir program kullandığınızdan emin olmalısınız. 

Ayrıca başka bir yöntemde tasarımı yaparak yazıcıya özel hazırlanmış .prn olarak çıktı almaktır. Bu dosya içerisinde belirlediğiniz değişkenleri belirli bir formata oluşturursunuz örneğin @degisken1@, @degisken2@ gibi her yazdırma işlemi sırasında bu dosyayı okuyarak ilgili değişkenleri replace ederek oluşturduğunuz yeni dosyayı yazıcıya göndererek etiket çıktısı alabilirsiniz.

Dijital dönüşüm başlıyor...

CevapAlıntı
Gönderildi : 13/03/2019 11:53
Murat güler
(@Muratguler)
Yeni Üye

Merhaba Ali Bey

El terminali olarak m3 kullanıyorum. 

Youtube da perkon yazılıma baktığım zaman 

böyle bir etiket yazdırma yapıyorlar. Ben aynısını deniyorum. ZebraDesigner programında lbl dosyasının içeriğinde null yazan siyah ifadeler falan geliyor. Değişkenli yapabiliyorum orada barkodu ama sadece o program üzerinden değişkenlere değer atayabiliyorum. El terminali üzerinden bunu (yukarıdaki youtube linkinde de olduğu gibi)  nasıl yapabilirim ?

Teşekkürler

CevapAlıntı
Gönderildi : 13/03/2019 12:03
Ali UYSAL
(@aliuysal)
Yeni Üye Forum Yöneticisi

Söylediğim gibi buradaki örnekte prn kullanılmış, uzatısının lbl olduğuna bakmayın sizin ZebraDesignerde prn oluşturmanız gerekiyor nasıl oluşturacağınıza gelirsek aşağıda sıralıyor olacağım.

1- Öncelikle yeni bir etiket tasarım projesi oluşturun, bu projede kullanılacak yazıcı olarak mutlaka yazdırma yapacağınız yazıcıyı seçin, burada oluşturacağınız dosya ile başka model yazıcılarda yazdırma yapamazsınız.

2- Etiket tasarımınızı yapın, fakat burada dikkat etmeniz gereken eklediğiniz text alanlarında mutlaka printer fontunu kullanmanız , font alanında başında printer iconu bulunan fontları kullanabilirsiniz, Arial vs. gibi PC fontları kullanmayacaksınız, bu fontları kullanırsanız oluşturacağınız dosya içerisinde anlamsız karakterler oluşur değişkeni bulamazsınız.

Screenshot 1

3- Tasarım tamamlandıktan sonra, CTRL+P yapın açılan ekrandan "Print to File" seçeneğini işaretleyin ve Yazdıra basın. Size bir dosya verecek bu dosya ile yazdırma işlemi yapacaksınız.

Screenshot 2

4- Alacağınız dosya aşağıdaki gibi olacak, bu dosya sizin tasarım dosyanız olarak kabul edebilirsiniz. Şimdi yapmanız gereken her yazdırma işleminden önce bu dosya içeriğini el terminalinde okumak ve ve string değişkenine almak, sonra içerisindeki <DEGISKEN1> <DEGISKEN2> gibi yazdığımız değişkenleri replace ederek sizdeki değerlerle değiştirmek sonrasında el ettiğiniz stringi doğrudan veya yine bir dosya içerisine kaydederek dosyayı barkod yazıcıya send etmek.

Screenshot 4

Python ile yapılmış bir örneğini aşağıda paylaşıyorum, mantık olarak yardımcı olacaktır.

s = open("Etiket_Sablon.prn").read() //Etiket prn dosyası okunuyor ve s değişkenine alınıyor
s = s.replace('@OPERATOR@', self.operator_lineEdit.text())
s = s.replace('@URUN@', self.urun_lineEdit.text())
s = s.replace('@PARTI@', self.parti_lineEdit.text())
s = s.replace('@TARIH@', date)
s = s.replace('@SAAT@', time)
s = s.replace('@AGIRLIK@', self.dinamicscale_label.text())
s = s.replace('@EAGIRLIK@', self.dinamicscale_label.text().replace(" kg", ""))
s = s.replace('ı', 'i')
s = s.replace('ğ', 'g')
s = s.replace('ü', 'u')
s = s.replace('ş', 's')
s = s.replace('İ', 'I')
s = s.replace('ö', 'o')
s = s.replace('ç', 'c')
s = s.replace('Ğ', 'G')
s = s.replace('Ü', 'U')
s = s.replace('Ş', 'S')
s = s.replace('Ö', 'O')
s = s.replace('Ç', 'C')
f = open("Etiket.txt", 'w') //Yapılan replace sonrası el ettiğimiz string bir dosyaya yazdırılıyor
f.write(s)
f.close()
printer_returns = conn.printFile('SBARCO_T4ep2', 'Etiket.txt', '', {'document-format':'application/vnd.cups-raw'}) // Etiket.txt dosyası yazıcıya gönderiliyor.
Bu ileti 1 hafta önce Ali UYSAL tarafından düzenlendi

Dijital dönüşüm başlıyor...

CevapAlıntı
Gönderildi : 13/03/2019 12:22
Murat güler
(@Muratguler)
Yeni Üye

Merhaba Ali Bey 

Ben bunu dediğiniz gibi yapıyorum.

Dosyaya yazdırdığım zaman 

 

I8,A,001

Q203,024
q831
rN
S3
D7
ZT
JF
O
R90,0
f100
N
B641,9,1,1,2,6,25,B,"1231231231"
P1

 

çıktısını alıyorum. Yani sizdeki gibi değişken1, değişken2 falan diye yazdımıyor.

Neden acaba ?

 

 

CevapAlıntı
Gönderildi : 13/03/2019 17:36
Ali UYSAL
(@aliuysal)
Yeni Üye Forum Yöneticisi

tasarımı öyle yapmamışsınızdır.

siz 1231231231 yazmışsınız tasarım yaparken.

benim manüel girdiğim birşey değişken1 vs.

Dijital dönüşüm başlıyor...

CevapAlıntı
Gönderildi : 13/03/2019 17:50
Murat güler
(@Muratguler)
Yeni Üye

Yazdırmak için kodlar böyle

 // Instantiate connection for ZPL Serial port on COM1. 
        ZebraPrinterConnection thePrinterConn = new SerialPrinterConnection("COM1", 9600, 8, Parity.None, StopBits.One, Handshake.None);

        // Open the connection - physical connection is established here.
        thePrinterConn.Open();

        // This example prints "This is a ZPL test." near the top of the label.
        String zplData = "^XA^FO20,20^A0N,25,25^FDThis is a ZPL test.^FS^XZ";

        // Send the data to printer as a byte array.
        thePrinterConn.Write(Encoding.Default.GetBytes(zplData));

        // Close the connection to release resources.
        thePrinterConn.Close();

    } catch (ZebraPrinterConnectionException e) {

        // Handle communications error here.
        Console.Write(e.StackTrace);
    }


benim dosyamdaki yazılar ise


I8,A,001

Q203,024
q831
rN
S3
D7
ZT
JF
O
R90,0
f100
N
B641,9,1,1,2,6,25,B,"DEGISKEN1"
B576,18,1,1,1,3,17,B,"DEGISKEN2"
P1

 

böyle bu şekilde bir sorun olur mu

CevapAlıntı
Gönderildi : 13/03/2019 18:01
Ali UYSAL
(@aliuysal)
Yeni Üye Forum Yöneticisi

1. zplData diye test yazdırmaya çalışıyorsunuz

2. seriporttan yazdırıyorsunuz mobil bluetooth yazıcımı var?

3. öyleyse serial baudrate ayarlarını kontrol edin 9600 mü yazıcı iletişimi

Dijital dönüşüm başlıyor...

CevapAlıntı
Gönderildi : 13/03/2019 18:11
Paylaş:
  
Çalışıyor

Lütfen Giriş yap yada Kayıt ol