我需要在网络 Zebra 打印机上打印。由于某些原因,我不能使用 winspool 打印(http://support.microsoft.com/kb/154078),我必须通过 IP 和端口上的套接字直接打印打印。这是我的打印方法:
System.Net.Sockets.TcpClient zebraClient = new System.Net.Sockets.TcpClient();
try
{
zebraClient.SendTimeout = 5000;
zebraClient.Connect(IP, port);
}
catch (Exception ex)
{
Utils.ShowError(ex);
}
if (zebraClient.Connected)
{
NetworkStream nStream;
nStream = zebraClient.GetStream();
StreamWriter wStream;
using (nStream)
{
wStream = new StreamWriter(nStream);
using (wStream)
{
wStream.Write(content);
wStream.Flush();
}
}
zebraClient.Close();
}
问题是,有时会出现“无法创建连接,因为目标计算机主动拒绝它”异常。我不知道为什么会发生这种情况(可能是完整的打印机缓冲区 - 如果是这样,我如何用两种语言检查它?)。所以我问是否有人遇到过这个问题,我该如何解决?