Forum
Merhaba
IP adresi ile bir dosyayı yazıcıya bağlanarak nasıl yazdırabilirim ?
Teşekkürler
Merhabalar;
Burada yazıcının tipide önemli olmakla beraber Normal bir lazer yazıcıdan bahsediyorsak aşağıdaki gibi bir formatta gönderim sağlayabilirsiniz.
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.NoDelay = true;
IPAddress ip = IPAddress.Parse("192.168.192.6");
IPEndPoint ipep = new IPEndPoint(ip, 9100);
clientSocket.Connect(ipep);
byte[] fileBytes = File.ReadAllBytes("test.txt");
clientSocket.Send(fileBytes);
clientSocket.Close();
Veya yazıcıyı bilgisayarınıza network yazıcı olarak tanımlayıp driverini kurarak normal print fonksiyonları ile bu drivera yazdırma işlemide yapabilirsiniz.
Cevabınız için teşekkür ederim. Burada belirtilen 9100 port olarak kullanılıyormuş ben port girmeden nasıl yapabilirim bunu ?
Yazıcı nedir?
Yazılımı kullanacağınız işletim sistemi nedir?
Yazıcı : Samsung SCX-4623 Series Class Driver
İşletim sistemi => windows 10, windows 8 , windows 7
O zaman bu yazıcıyı network printer olarak işletim sistemine tanıtım, direkt drivera yazdırabilirsin c# ile.
Referans adres yardımcı olacaktır;
https://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.print(v=vs.110).aspx
Ben aslında el terminalinden yazıcıya dosya göndermeye çalışıyorum. Ip ile bağlanarak gönderme yapacam ama cihazı el terminaline tanıtmadan. Eğer böyle bir yöntem yok ise el terminalinden servise bağlanıp windows üzerinden yazıcıya dosyayı gönderecem
Başta yazılımı kullanacağınız işletim sistemi derken böyle bir durum var mı acaba diye sormuştum zaten.
El Terminali üzerinden yazdırma işlemi yapmak için en başta önerdiğim yöntem olan porta yazdırma işlemini öneriyorum, porta neden yazdıramıyorsunuz bilmiyorum fakat el terminallerinden biz bu şekilde yazdırma yapıyoruz.
Ayrıca başka bir yöntem PrinterCE SDK'sını kullanarak da network yazdırma işlemi yapabilirsiniz el terminallerinden.
http://www.fieldsoftware.com/PrinterCE.htm
Yazdığınız kodları yazınca
clientSocket.NoDelay = true; => NoDelay kısmında
byte[] fileBytes = File.ReadAllBytes("test.txt"); = > RaeadAllBytes kısımlarında hata alıyorum. Nasıl düzeltebilirm ?
Verdiğim kodlar .Net 4 üzeri SDK'lar için. Mobile göre düzenleyerek devam etmeniz gerekir. Ne hata aldığınızıda bilmediğim için yorum yapamıyorum
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.NoDelay = true;
IPAddress ip = IPAddress.Parse("192.168.2.100");
IPEndPoint ipep = new IPEndPoint(ip, 631);
clientSocket.Connect(ipep);
byte[] fileBytes = File.ReadAllBytes("test.txt");
clientSocket.Send(fileBytes);
clientSocket.Close();
ben bu kodlarda yazıcıya gönderme yapıyorum fakat çıktı alamıyorum.
Başka ne yapmam lazım ?
localden
192.168.2.100 ip adresini yazınca network bilgisinden
192.168.2.100:631 yazısı gözüküyor. Buradaki 631 yazısı port numarasımı demek ?