Forum

El terminali Barkod...
 
Bildirimler
Hepsini Temizle

El terminali Barkod Yazdırma

8 Yazılar
2 Üyeler
0 Reactions
5,503 Görüntüleme
(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

Merhaba 

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

İyi Günler

 
Gönderildi : 13/03/2019 11:45

(@aliuysal)
Gönderiler: 292
Üye
 

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...
RFID Sayım
WinFlow e-Fatura Onay Akış Süreç Yazılımı
Android El Terminali
Elektrikli Araç Şarj Yazılım Platformu
RFID Demirbaş
QrCode Api

 
Gönderildi : 13/03/2019 11:53

(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

Merhaba Ali Bey

El terminali olarak m3 kullanıyorum. 

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

https://www.youtube.com/watch?reload=9&v=eBV0Li17jP4

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

 
Gönderildi : 13/03/2019 12:03

(@aliuysal)
Gönderiler: 292
Üye
 

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.

Dijital dönüşüm başlıyor...
RFID Sayım
WinFlow e-Fatura Onay Akış Süreç Yazılımı
Android El Terminali
Elektrikli Araç Şarj Yazılım Platformu
RFID Demirbaş
QrCode Api

 
Gönderildi : 13/03/2019 12:22

(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

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 ?

 

 

 
Gönderildi : 13/03/2019 17:36

(@aliuysal)
Gönderiler: 292
Üye
 

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...
RFID Sayım
WinFlow e-Fatura Onay Akış Süreç Yazılımı
Android El Terminali
Elektrikli Araç Şarj Yazılım Platformu
RFID Demirbaş
QrCode Api

 
Gönderildi : 13/03/2019 17:50

(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

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

 
Gönderildi : 13/03/2019 18:01

(@aliuysal)
Gönderiler: 292
Üye
 

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...
RFID Sayım
WinFlow e-Fatura Onay Akış Süreç Yazılımı
Android El Terminali
Elektrikli Araç Şarj Yazılım Platformu
RFID Demirbaş
QrCode Api

 
Gönderildi : 13/03/2019 18:11

Paylaş: