直接发送文本文件到网络打印机

2024-02-18

我当前正在工作的代码通过编写临时文件将原始数据发送到打印机,然后使用File.Copy()将其发送到打印机。File.Copy()支持两个本地端口,例如LPT1和共享打印机,例如\\FRONTCOUNTER\LabelPrinter.

但是,现在我试图让它与直接在网络上的打印机一起工作:192.168.2.100,而且我无法弄清楚要使用的格式。

File.Copy(filename, @"LPT1", true); // Works, on the FRONTCOUNTER computer
File.Copy(filename, @"\\FRONTCOUNTER\LabelPrinter", true); // Works from any computer
File.Copy(filename, @"\\192.168.2.100", true); // New printer, Does not work

我知道可以从每台计算机“添加打印机”,但我希望避免这种情况 - 上面的第二行代码可以自动在网络上的任何计算机上运行,​​无需配置。我也知道可以 P/Invoke Windows 打印后台处理程序,如果这是我唯一的选择,我可能会接受它,但这比我想要的代码开销要多得多。

理想情况下,有人可以通过以下两种方法之一File.Copy()work 或类似的 C# 语句将接受网络 IP。


您可以使用套接字并将数据直接发送到该 IP 地址。应该差不多是一样的File.Copy。我刚刚尝试了一下,效果很好。

我刚刚发送了一些文字,但这是我使用的代码

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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

直接发送文本文件到网络打印机 的相关文章

随机推荐