【发布时间】:2022-01-24 06:48:39
【问题描述】:
我有一个 ASP Web API 和网络打印机 (Epson TM-U220)。我需要通过代码选择打印机并打印账单。我只是尝试如下。但不能正常工作。 I want to print this direct using pos printer
var server = "192.168.1.164";
var nome = "www.pdf";
Socket clientSocket = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
clientSocket.NoDelay = true;
IPAddress ip = IPAddress.Parse(server);
IPEndPoint ipep = new IPEndPoint(ip, 9100);
clientSocket.Connect(ipep);
clientSocket.Send(File.ReadAllBytes(nome));
clientSocket.Close();
【问题讨论】:
-
您不能只将 PDF 字节流发送到打印机...打印机不是这样工作的
-
我建议您阅读 CUPS 等已建立的网络打印协议:cups.org
-
我建议您编辑问题并解释您实际上想要什么。 POS 打印机与普通打印机完全不同。使用普通打印机不需要套接字或 TCP 连接,您可以使用 .NET 的打印机类打印到配置的 Windows 打印机。 POS 打印机虽然不显示为普通打印机,但它们可能显示为程序向其发送打印机命令的虚拟串行或 LPT 端口。有些可能有自己的打印机驱动程序。
-
您不能只是将 PDF 文件复制给他们,您必须将其转换。将带有打印命令和文本的字符串发送到打印机比创建 PDF 然后尝试将其转换为打印命令要容易得多。即使那样,您也不能只向打印机发送一堆字节。您发送的数据包需要具有打印机可以理解的格式。当您使用虚拟串行或 LPT 端口时,驱动程序负责打包字节。当您直接与打印机交谈时,您必须这样做。打印机的文档或支持网站可能解释需要什么
-
查看printer's support page 我看到
Epson OPOS ADK for .NET v1.14.20E是第一次下载。你试过用这个吗?
标签: c# sockets pdf pos network-printers