none
c# barkod/etiket tasarlama RRS feed

  • Soru

  • Merhabalar , c# da geliştirmiş olduğum bir proje de etiket / barkod tasarımı yapmam gerekiyor

    Örnek : 

    Bu tarz bir tasarım ve sonrasın da yazdırmak istiyorum , bunun için geçerli bir kütüphane ya da tavsiye edeceğiniz bir yol var mıdır? 

    26 Nisan 2019 Cuma 21:10

Yanıtlar

  • OPOS ile yapmalısınız. Burayı incelermisiniz;
    https://social.msdn.microsoft.com/Forums/tr-TR/3d3b126a-4ada-4919-bcea-b200b70bc2e1/c-adisyon-fii-oluturna?forum=csharptr

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    26 Nisan 2019 Cuma 21:42
    Moderatör

  • Hocam kalın yaptığım yerde blanket içinde herhangi bir değer atıyor muydunuz? Copy/Paste seklinde verdim ama yine birşey değişmedi. Daha önce bu makinadan nasıl alıyorlardı çıktıyı bilmiyorum ama aldıklarından eminim sanırım drawing sınıfı ile yazdırıyor olabilirler. Satılan ürünlerin en son çıktısını almam gerekiyor,  Ürün ad , adet , toplam tutar gibi kasa fişi tarzı alternatif önerileriniz var mı? 

          Foreach döngüsünün içerisinde nesneyi bir listeye yada bir yere yazdırırsan topluca görebilirsin yada breakpoint koyarak takip etmelisin.Eğer döngüye girmiyorsa bulunan bir şey yoktur.Bu durumda ortada bir  OPOS sürücüsü yoktur.

         Bu durumda tüm yazıcıların esc/pos desteklediğini düşünürsek aşağıdaki linklere bakmanı öneririm.(son çare)

         Link1 , Link2

          

         Örnek : 

         
     var explorer = new PosExplorer();
                foreach (DeviceInfo deviceinfo in explorer.GetDevices(DeviceType.PosPrinter))
                {
                    if (deviceinfo != null)
                    {
                        foreach (var nesne in deviceinfo.LogicalNames)
                        {
    
                       MessageBox.Show(nesne);
    
                        }
                    }
                }

    5 Mayıs 2019 Pazar 18:42

  • Hocam kalın yaptığım yerde blanket içinde herhangi bir değer atıyor muydunuz? Copy/Paste seklinde verdim ama yine birşey değişmedi. Daha önce bu makinadan nasıl alıyorlardı çıktıyı bilmiyorum ama aldıklarından eminim sanırım drawing sınıfı ile yazdırıyor olabilirler. Satılan ürünlerin en son çıktısını almam gerekiyor,  Ürün ad , adet , toplam tutar gibi kasa fişi tarzı alternatif önerileriniz var mı? 

          Foreach döngüsünün içerisinde nesneyi bir listeye yada bir yere yazdırırsan topluca görebilirsin yada breakpoint koyarak takip etmelisin.Eğer döngüye girmiyorsa bulunan bir şey yoktur.Bu durumda ortada bir  OPOS sürücüsü yoktur.

         Bu durumda tüm yazıcıların esc/pos desteklediğini düşünürsek aşağıdaki linklere bakmanı öneririm.(son çare)

         Link1 , Link2

          

         Örnek : 

         
     var explorer = new PosExplorer();
                foreach (DeviceInfo deviceinfo in explorer.GetDevices(DeviceType.PosPrinter))
                {
                    if (deviceinfo != null)
                    {
                        foreach (var nesne in deviceinfo.LogicalNames)
                        {
    
                       MessageBox.Show(nesne);
    
                        }
                    }
                }

    Hocam öncelikle hızlı cevap için çok çok teşekkür ederim , ellerine sağlık messagebox ile beraber POS-58 yani benim termal yazıcım dönüyor görüyorum listede yani ancak print dediğimde yine her hangi bir tetikleme yok ama :) 

    • Yanıt Olarak İşaretleyen smhylc 5 Mayıs 2019 Pazar 20:23
    5 Mayıs 2019 Pazar 19:10


  • Hocam öncelikle hızlı cevap için çok çok teşekkür ederim , ellerine sağlık messagebox ile beraber POS-58 yani benim termal yazıcım dönüyor. Print dediğimde yine her hangi bir tetikleme yok ama :) 

          Bak bu benim programımdan bir method.(Program benim ama kod Önay abiden :D )

          
     public static void MutfakYaz(List<Urunler> liste)
            {
                try
                {
                    PosPrinter posPrinter;
                    var explorer = new PosExplorer();
                    var deviceInfo = explorer.GetDevice(DeviceType.PosPrinter, "BURAYA o foreach den aldığın POS-48 i yazmalısın");
                    if (deviceInfo == null)
                    {
                        MessageBox.Show("Yazıcı bulunamadı!");
                        return;
                    }
    
                    posPrinter = (PosPrinter)explorer.CreateInstance(deviceInfo);
                    posPrinter.Open();
                    posPrinter.Claim(500);
                    posPrinter.DeviceEnabled = true;
    
                    posPrinter.StatusUpdateEvent += (s, evt) =>
                    {
                        if (evt.Status == PosPrinter.StatusCoverOpen)
                        {
                            MessageBox.Show("Yazıcının kağıt kapağı açıldı");
                        }
    
    
                    
                };
                    posPrinter.PrintNormal(PrinterStation.Receipt, RestoranAdim() + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, String.Format("{0,-5}{1,30}", "Tarih :", DateTime.Now) + Environment.NewLine);
    
    
                    posPrinter.PrintNormal(PrinterStation.Receipt, " " + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, String.Format("{0,-32}|{1,-3}", "Ürün Adı", "Adet") + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, "************************************************" + Environment.NewLine);
                    foreach (var urun in liste)
                    {
                posPrinter.PrintNormal(PrinterStation.Receipt, urun.urunadi.PadRight(verilecekboslukAD) + " " + urun.adet.ToString().PadRight(verilecekboslukADET) + " " + (urun.urunfiyati.ToString() + "TL").PadRight(verilecekboslukFiyat) + Environment.NewLine);
                        posPrinter.PrintNormal(PrinterStation.Receipt, String.Format("{0,-32}|{1,-3}", urun.urunadi, urun.adet) + Environment.NewLine);
    
    
                    }
                    posPrinter.PrintNormal(PrinterStation.Receipt, "************************************************" + Environment.NewLine);
    
                    posPrinter.PrintNormal(PrinterStation.Receipt, "" + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, "" + Environment.NewLine);
    
                    posPrinter.PrintNormal(PrinterStation.Receipt, "" + Environment.NewLine);
    
                    
    
                    posPrinter.CutPaper(100); 
                    posPrinter.Close();
                }
                catch(Exception)
                {
                  
                }
            }
    O foreachten dönen ifadeyi kodun içerisinde ilgili yere yazarak çıktı alabilmen lazım (ilgili yeri kodda belirttim).
    • Yanıt Olarak İşaretleyen smhylc 5 Mayıs 2019 Pazar 20:23
    5 Mayıs 2019 Pazar 19:16

Tüm Yanıtlar

  • OPOS ile yapmalısınız. Burayı incelermisiniz;
    https://social.msdn.microsoft.com/Forums/tr-TR/3d3b126a-4ada-4919-bcea-b200b70bc2e1/c-adisyon-fii-oluturna?forum=csharptr

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    26 Nisan 2019 Cuma 21:42
    Moderatör
  • Aldığınız yazıcının OPOS driver'ı olduğundan emin olun.Genelde bu driverı yazıcının resmi sitesinden indirip kurmanız gerekiyor.(en azından benim karşılaştığım durum öyleydi)

    Örnek yazıcı HPRT , (Bu yazıcıyı kullanın diye paylaşmadım sitedeki opos driverını görün diye paylaştım yani etiket basan yazıcılar hakkında bir tecrübem olmadı.)



    27 Nisan 2019 Cumartesi 07:24
  • Aldığınız yazıcının OPOS driver'ı olduğundan emin olun.Genelde bu driverı yazıcının resmi sitesinden indirip kurmanız gerekiyor.(en azından benim karşılaştığım durum öyleydi)

    Örnek yazıcı HPRT , (Bu yazıcıyı kullanın diye paylaşmadım sitedeki opos driverını görün diye paylaştım yani etiket basan yazıcılar hakkında bir tecrübem olmadı.)



    Elimde ZJiang ZJ-5890K modeli var ve harici yerlerde bununla fiş yazıldığını gördüğüm için almıştım , driver'ı kurulu opos ile yazdır dediğimde yazdırma işlemini yapmıyor. Reportview ile tasarladığım sayfada yazdır dediğimde yazdırma işlemi yapıyor ama ofos tarafında işlem yaptıramıyorum. Sebebi ne olabilir? 
    5 Mayıs 2019 Pazar 12:16

  • Elimde ZJiang ZJ-5890K modeli var ve harici yerlerde bununla fiş yazıldığını gördüğüm için almıştım , driver'ı kurulu opos ile yazdır dediğimde yazdırma işlemini yapmıyor. Reportview ile tasarladığım sayfada yazdır dediğimde yazdırma işlemi yapıyor ama ofos tarafında işlem yaptıramıyorum. Sebebi ne olabilir? 

          1-Doğru pos for .NET'i bilgisayarınıza kurduğunuzdan emin olun.

          2-Doğru yazıcı adını kullanarak yazıcıya yazdırma işlemi yaptığınızdan emin olun.(Önay abinin paylaştığı linkte kodlar var devicelar içerisinde foreach ile dönüp hangi yazıcıları bulabildiğine bak)

          3-Varsa sahip olduğunuz yazıcının OPOS driver'ını bilgisayarınıza kurmanız gerekmekte.(Ben baktım sitesine ancak böyle bir driver göremedim.)

          

          

    5 Mayıs 2019 Pazar 12:44

  • Elimde ZJiang ZJ-5890K modeli var ve harici yerlerde bununla fiş yazıldığını gördüğüm için almıştım , driver'ı kurulu opos ile yazdır dediğimde yazdırma işlemini yapmıyor. Reportview ile tasarladığım sayfada yazdır dediğimde yazdırma işlemi yapıyor ama ofos tarafında işlem yaptıramıyorum. Sebebi ne olabilir? 

          1-Doğru pos for .NET'i bilgisayarınıza kurduğunuzdan emin olun.

          2-Doğru yazıcı adını kullanarak yazıcıya yazdırma işlemi yaptığınızdan emin olun.(Önay abinin paylaştığı linkte kodlar var devicelar içerisinde foreach ile dönüp hangi yazıcıları bulabildiğine bak)

          3-Varsa sahip olduğunuz yazıcının OPOS driver'ını bilgisayarınıza kurmanız gerekmekte.(Ben baktım sitesine ancak böyle bir driver göremedim.)

          

          

    Hocam , malesef aynı şekilde similasyon da tasarım var ama yazıcıda herhangi bir tetikleme yok , farklı bir yazıcı kuruyorum yine aynı şekilde tetikleme yok , default PrintDialog ile yazdırma yapabiliyor ama diğer türlü sonuc yok , tetikleme yok yani. Buncan önce aynı makine ile ( yazıcıdan bahsediyorum ) fiş veren programlar olduğu için makineyi aldım , yani opos yazdırmama gibi ihtimali yok
    • Düzenleyen smhylc 5 Mayıs 2019 Pazar 17:44
    5 Mayıs 2019 Pazar 17:44

  • Hocam , malesef aynı şekilde similasyon da tasarım var ama yazıcıda herhangi bir tetikleme yok , farklı bir yazıcı kuruyorum yine aynı şekilde tetikleme yok , default PrintDialog ile yazdırma yapabiliyor ama diğer türlü sonuc yok , tetikleme yok yani. Buncan önce aynı makine ile ( yazıcıdan bahsediyorum ) fiş veren programlar olduğu için makineyi aldım , yani opos yazdırmama gibi ihtimali yok

         Daha önce Thermal bir yazıcı kullanmam gerekti bir projede, kullandığım yazıcıdan (Hprt Tp806) Opos driverını yükleyene kadar çıktı alabilmem mümkün olmadı.Tabi bu belki benim kullandığım markanın bir sorunu olabilir.

         Ben projemde aşağıdaki şekilde opos ile ulaşabileceğim driverlara erişebiliyordum : 

         
    var explorer = new PosExplorer();
                foreach (DeviceInfo deviceinfo in explorer.GetDevices(DeviceType.PosPrinter))
                {
                    if (deviceinfo != null)
                    {
                        foreach (var nesne in deviceinfo.LogicalNames)
                        {
    
                            
    
                        }
                    }
                }

           Burada şuna dikkat edin sizin c# programınız opos driver ı ile konuşuyor opos gidip yazıcıya talimat veriyor yani yazıcının default olması yada takılı olup olmaması önemsiz eğer bir opos sürücüsü varsa bulması gerekiyor bu kodun.(Yani atıyorum XXP yazıcısını balamayın ama driverını yükleyin o driver ı görmeli.)

           En azından benim bilgim bu yönde tabi Önay abi daha iyi bilir bende ondan öğrendim zaten.



    5 Mayıs 2019 Pazar 18:04

  • Hocam , malesef aynı şekilde similasyon da tasarım var ama yazıcıda herhangi bir tetikleme yok , farklı bir yazıcı kuruyorum yine aynı şekilde tetikleme yok , default PrintDialog ile yazdırma yapabiliyor ama diğer türlü sonuc yok , tetikleme yok yani. Buncan önce aynı makine ile ( yazıcıdan bahsediyorum ) fiş veren programlar olduğu için makineyi aldım , yani opos yazdırmama gibi ihtimali yok

         Daha önce Thermal bir yazıcı kullanmam gerekti bir projede, kullandığım yazıcıdan (Hprt Tp806) Opos driverını yükleyene kadar çıktı alabilmem mümkün olmadı.Tabi bu belki benim kullandığım markanın bir sorunu olabilir.

         Ben projemde aşağıdaki şekilde opos ile ulaşabileceğim driverlara erişebiliyordum : 

         
    var explorer = new PosExplorer();
                foreach (DeviceInfo deviceinfo in explorer.GetDevices(DeviceType.PosPrinter))
                {
                    if (deviceinfo != null)
                    {
                        foreach (var nesne in deviceinfo.LogicalNames)
                        {
    
                            
    
                        }
                    }
                }

           Burada şuna dikkat edin sizin c# programınız opos driver ı ile konuşuyor opos gidip yazıcıya talimat veriyor yani yazıcının default olması yada takılı olup olmaması önemsiz eğer bir opos sürücüsü varsa bulması gerekiyor bu kodun.(Yani atıyorum XXP yazıcısını balamayın ama driverını yükleyin o driver ı görmeli.)

           En azından benim bilgim bu yönde tabi Önay abi daha iyi bilir bende ondan öğrendim zaten.



    Hocam kalın yaptığım yerde blanket içinde herhangi bir değer atıyor muydunuz? Copy/Paste seklinde verdim ama yine birşey değişmedi. Daha önce bu makinadan nasıl alıyorlardı çıktıyı bilmiyorum ama aldıklarından eminim sanırım drawing sınıfı ile yazdırıyor olabilirler. Satılan ürünlerin en son çıktısını almam gerekiyor,  Ürün ad , adet , toplam tutar gibi kasa fişi tarzı alternatif önerileriniz var mı? 
    5 Mayıs 2019 Pazar 18:31

  • Hocam kalın yaptığım yerde blanket içinde herhangi bir değer atıyor muydunuz? Copy/Paste seklinde verdim ama yine birşey değişmedi. Daha önce bu makinadan nasıl alıyorlardı çıktıyı bilmiyorum ama aldıklarından eminim sanırım drawing sınıfı ile yazdırıyor olabilirler. Satılan ürünlerin en son çıktısını almam gerekiyor,  Ürün ad , adet , toplam tutar gibi kasa fişi tarzı alternatif önerileriniz var mı? 

          Foreach döngüsünün içerisinde nesneyi bir listeye yada bir yere yazdırırsan topluca görebilirsin yada breakpoint koyarak takip etmelisin.Eğer döngüye girmiyorsa bulunan bir şey yoktur.Bu durumda ortada bir  OPOS sürücüsü yoktur.

         Bu durumda tüm yazıcıların esc/pos desteklediğini düşünürsek aşağıdaki linklere bakmanı öneririm.(son çare)

         Link1 , Link2

          

         Örnek : 

         
     var explorer = new PosExplorer();
                foreach (DeviceInfo deviceinfo in explorer.GetDevices(DeviceType.PosPrinter))
                {
                    if (deviceinfo != null)
                    {
                        foreach (var nesne in deviceinfo.LogicalNames)
                        {
    
                       MessageBox.Show(nesne);
    
                        }
                    }
                }

    5 Mayıs 2019 Pazar 18:42

  • Hocam kalın yaptığım yerde blanket içinde herhangi bir değer atıyor muydunuz? Copy/Paste seklinde verdim ama yine birşey değişmedi. Daha önce bu makinadan nasıl alıyorlardı çıktıyı bilmiyorum ama aldıklarından eminim sanırım drawing sınıfı ile yazdırıyor olabilirler. Satılan ürünlerin en son çıktısını almam gerekiyor,  Ürün ad , adet , toplam tutar gibi kasa fişi tarzı alternatif önerileriniz var mı? 

          Foreach döngüsünün içerisinde nesneyi bir listeye yada bir yere yazdırırsan topluca görebilirsin yada breakpoint koyarak takip etmelisin.Eğer döngüye girmiyorsa bulunan bir şey yoktur.Bu durumda ortada bir  OPOS sürücüsü yoktur.

         Bu durumda tüm yazıcıların esc/pos desteklediğini düşünürsek aşağıdaki linklere bakmanı öneririm.(son çare)

         Link1 , Link2

          

         Örnek : 

         
     var explorer = new PosExplorer();
                foreach (DeviceInfo deviceinfo in explorer.GetDevices(DeviceType.PosPrinter))
                {
                    if (deviceinfo != null)
                    {
                        foreach (var nesne in deviceinfo.LogicalNames)
                        {
    
                       MessageBox.Show(nesne);
    
                        }
                    }
                }

    Hocam öncelikle hızlı cevap için çok çok teşekkür ederim , ellerine sağlık messagebox ile beraber POS-58 yani benim termal yazıcım dönüyor. Print dediğimde yine her hangi bir tetikleme yok ama :) 
    5 Mayıs 2019 Pazar 19:09

  • Hocam kalın yaptığım yerde blanket içinde herhangi bir değer atıyor muydunuz? Copy/Paste seklinde verdim ama yine birşey değişmedi. Daha önce bu makinadan nasıl alıyorlardı çıktıyı bilmiyorum ama aldıklarından eminim sanırım drawing sınıfı ile yazdırıyor olabilirler. Satılan ürünlerin en son çıktısını almam gerekiyor,  Ürün ad , adet , toplam tutar gibi kasa fişi tarzı alternatif önerileriniz var mı? 

          Foreach döngüsünün içerisinde nesneyi bir listeye yada bir yere yazdırırsan topluca görebilirsin yada breakpoint koyarak takip etmelisin.Eğer döngüye girmiyorsa bulunan bir şey yoktur.Bu durumda ortada bir  OPOS sürücüsü yoktur.

         Bu durumda tüm yazıcıların esc/pos desteklediğini düşünürsek aşağıdaki linklere bakmanı öneririm.(son çare)

         Link1 , Link2

          

         Örnek : 

         
     var explorer = new PosExplorer();
                foreach (DeviceInfo deviceinfo in explorer.GetDevices(DeviceType.PosPrinter))
                {
                    if (deviceinfo != null)
                    {
                        foreach (var nesne in deviceinfo.LogicalNames)
                        {
    
                       MessageBox.Show(nesne);
    
                        }
                    }
                }

    Hocam öncelikle hızlı cevap için çok çok teşekkür ederim , ellerine sağlık messagebox ile beraber POS-58 yani benim termal yazıcım dönüyor görüyorum listede yani ancak print dediğimde yine her hangi bir tetikleme yok ama :) 

    • Yanıt Olarak İşaretleyen smhylc 5 Mayıs 2019 Pazar 20:23
    5 Mayıs 2019 Pazar 19:10


  • Hocam öncelikle hızlı cevap için çok çok teşekkür ederim , ellerine sağlık messagebox ile beraber POS-58 yani benim termal yazıcım dönüyor. Print dediğimde yine her hangi bir tetikleme yok ama :) 

          Bak bu benim programımdan bir method.(Program benim ama kod Önay abiden :D )

          
     public static void MutfakYaz(List<Urunler> liste)
            {
                try
                {
                    PosPrinter posPrinter;
                    var explorer = new PosExplorer();
                    var deviceInfo = explorer.GetDevice(DeviceType.PosPrinter, "BURAYA o foreach den aldığın POS-48 i yazmalısın");
                    if (deviceInfo == null)
                    {
                        MessageBox.Show("Yazıcı bulunamadı!");
                        return;
                    }
    
                    posPrinter = (PosPrinter)explorer.CreateInstance(deviceInfo);
                    posPrinter.Open();
                    posPrinter.Claim(500);
                    posPrinter.DeviceEnabled = true;
    
                    posPrinter.StatusUpdateEvent += (s, evt) =>
                    {
                        if (evt.Status == PosPrinter.StatusCoverOpen)
                        {
                            MessageBox.Show("Yazıcının kağıt kapağı açıldı");
                        }
    
    
                    
                };
                    posPrinter.PrintNormal(PrinterStation.Receipt, RestoranAdim() + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, String.Format("{0,-5}{1,30}", "Tarih :", DateTime.Now) + Environment.NewLine);
    
    
                    posPrinter.PrintNormal(PrinterStation.Receipt, " " + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, String.Format("{0,-32}|{1,-3}", "Ürün Adı", "Adet") + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, "************************************************" + Environment.NewLine);
                    foreach (var urun in liste)
                    {
                posPrinter.PrintNormal(PrinterStation.Receipt, urun.urunadi.PadRight(verilecekboslukAD) + " " + urun.adet.ToString().PadRight(verilecekboslukADET) + " " + (urun.urunfiyati.ToString() + "TL").PadRight(verilecekboslukFiyat) + Environment.NewLine);
                        posPrinter.PrintNormal(PrinterStation.Receipt, String.Format("{0,-32}|{1,-3}", urun.urunadi, urun.adet) + Environment.NewLine);
    
    
                    }
                    posPrinter.PrintNormal(PrinterStation.Receipt, "************************************************" + Environment.NewLine);
    
                    posPrinter.PrintNormal(PrinterStation.Receipt, "" + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, "" + Environment.NewLine);
    
                    posPrinter.PrintNormal(PrinterStation.Receipt, "" + Environment.NewLine);
    
                    
    
                    posPrinter.CutPaper(100); 
                    posPrinter.Close();
                }
                catch(Exception)
                {
                  
                }
            }
    O foreachten dönen ifadeyi kodun içerisinde ilgili yere yazarak çıktı alabilmen lazım (ilgili yeri kodda belirttim).
    • Yanıt Olarak İşaretleyen smhylc 5 Mayıs 2019 Pazar 20:23
    5 Mayıs 2019 Pazar 19:16


  • Hocam öncelikle hızlı cevap için çok çok teşekkür ederim , ellerine sağlık messagebox ile beraber POS-58 yani benim termal yazıcım dönüyor. Print dediğimde yine her hangi bir tetikleme yok ama :) 

          Bak bu benim programımdan bir method.(Program benim ama kod Önay abiden :D )

          
     public static void MutfakYaz(List<Urunler> liste)
            {
                try
                {
                    PosPrinter posPrinter;
                    var explorer = new PosExplorer();
                    var deviceInfo = explorer.GetDevice(DeviceType.PosPrinter, "BURAYA o foreach den aldığın POS-48 i yazmalısın");
                    if (deviceInfo == null)
                    {
                        MessageBox.Show("Yazıcı bulunamadı!");
                        return;
                    }
    
                    posPrinter = (PosPrinter)explorer.CreateInstance(deviceInfo);
                    posPrinter.Open();
                    posPrinter.Claim(500);
                    posPrinter.DeviceEnabled = true;
    
                    posPrinter.StatusUpdateEvent += (s, evt) =>
                    {
                        if (evt.Status == PosPrinter.StatusCoverOpen)
                        {
                            MessageBox.Show("Yazıcının kağıt kapağı açıldı");
                        }
    
    
                    
                };
                    posPrinter.PrintNormal(PrinterStation.Receipt, RestoranAdim() + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, String.Format("{0,-5}{1,30}", "Tarih :", DateTime.Now) + Environment.NewLine);
    
    
                    posPrinter.PrintNormal(PrinterStation.Receipt, " " + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, String.Format("{0,-32}|{1,-3}", "Ürün Adı", "Adet") + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, "************************************************" + Environment.NewLine);
                    foreach (var urun in liste)
                    {
                posPrinter.PrintNormal(PrinterStation.Receipt, urun.urunadi.PadRight(verilecekboslukAD) + " " + urun.adet.ToString().PadRight(verilecekboslukADET) + " " + (urun.urunfiyati.ToString() + "TL").PadRight(verilecekboslukFiyat) + Environment.NewLine);
                        posPrinter.PrintNormal(PrinterStation.Receipt, String.Format("{0,-32}|{1,-3}", urun.urunadi, urun.adet) + Environment.NewLine);
    
    
                    }
                    posPrinter.PrintNormal(PrinterStation.Receipt, "************************************************" + Environment.NewLine);
    
                    posPrinter.PrintNormal(PrinterStation.Receipt, "" + Environment.NewLine);
                    posPrinter.PrintNormal(PrinterStation.Receipt, "" + Environment.NewLine);
    
                    posPrinter.PrintNormal(PrinterStation.Receipt, "" + Environment.NewLine);
    
                    
    
                    posPrinter.CutPaper(100); 
                    posPrinter.Close();
                }
                catch(Exception)
                {
                  
                }
            }
    O foreachten dönen ifadeyi kodun içerisinde ilgili yere yazarak çıktı alabilmen lazım (ilgili yeri kodda belirttim).

    Yazıcı bulunamadı diyor :) En azından bir ilerleme oldu :) bunun sebebi opos destekli olmaması mı ? 

    Bir tane demo otomasyon indirdim , fake satış yapıp fiş yazdır dediğim de makina çıktı veriyor , ama benim program da hata veriyor :) 

    • Düzenleyen smhylc 5 Mayıs 2019 Pazar 20:27
    5 Mayıs 2019 Pazar 20:23


  • Yazıcı bulunamadı diyor :) En azından bir ilerleme oldu :) bunun sebebi opos destekli olmaması mı ? 

    Bir tane demo otomasyon indirdim , fake satış yapıp fiş yazdır dediğim de makina çıktı veriyor , ama benim program da hata veriyor :) 

          İlginç aklıma bir şey gelmiyor açıkcası.Demo otomasyonun kodlarını görüntüleyip çıktıyı nasıl aldırdığına baksana.Aynı yazıcıdan opos kullanarak yada direkt esc/pos ile de çıktı alınabilir.Yani çıktı alabiliyor olması bu haliyle bir şeyi cevaplamıyor açıkcası.Bu arada MessageBox ile döngüde yazılan başka bir yazıcı olmadığından da eminseniz diyecek bir şey bulamıyorum.

         NOT:Tabi eğer kodda bir hata yapmıyorsanız.

    5 Mayıs 2019 Pazar 20:39


  • Yazıcı bulunamadı diyor :) En azından bir ilerleme oldu :) bunun sebebi opos destekli olmaması mı ? 

    Bir tane demo otomasyon indirdim , fake satış yapıp fiş yazdır dediğim de makina çıktı veriyor , ama benim program da hata veriyor :) 

          İlginç aklıma bir şey gelmiyor açıkcası.Demo otomasyonun kodlarını görüntüleyip çıktıyı nasıl aldırdığına baksana.Aynı yazıcıdan opos kullanarak yada direkt esc/pos ile de çıktı alınabilir.Yani çıktı alabiliyor olması bu haliyle bir şeyi cevaplamıyor açıkcası.Bu arada MessageBox ile döngüde yazılan başka bir yazıcı olmadığından da eminseniz diyecek bir şey bulamıyorum.

         NOT:Tabi eğer kodda bir hata yapmıyorsanız.

    harici 2-3 tane daha yazıcı çıkıyor ama mevcut olmayan yazıcılar Microsoft print to pdf , xps document writer , OnNote gibi şeyler. 
    5 Mayıs 2019 Pazar 23:31