通过PrintServer将RAW ZPL发送到斑马打印机不起作用



问题

我正在尝试将ZPL RAW发送到打印服务器。有斑马ZM400打印机。我可以得到PrintServer,Printqueue对象。另外,我可以添加一份工作,并写入其Jobstream。

我检查了打印队列(在Windows上),并发送了文档。打印机数据灯闪烁1/2秒。

进度

这是我用于打印服务器的代码:

PrintServer ps = new PrintServer(@"\192.168.1.1");
PrintQueue pq = ps.GetPrintQueue("Printer 01");
Byte[] myByteBuffer = Encoding.ASCII.GetBytes(
    @"^XA^MMP^PW300^LS0^LT0^FT10,60^APN,30,30^FH^FDSAMPLE TEXT^FS^XZ");
PrintSystemJobInfo psji = pq.AddJob();
psji.JobStream.Write(myByteBuffer, 0, myByteBuffer.Length);
psji.JobStream.Flush();
psji.JobStream.Close();

essue

当我检查打印队列(在Windows上)时,该文档具有0个字节。然后,打印机什么也没打印。

我是否错过了一些特别的字符?或者,我会发送错误的原始数据吗?

在我的应用程序中,我使用以下代码,该代码正常:

ZPLString = @"^XA^MMP^PW300^LS0^LT0^FT10,60^APN,30,30^FH^FDSAMPLE TEXT^FS^XZ";
// Open connection
System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
client.Connect("10.10.5.85", 9100);
// Write ZPL String to connection
System.IO.StreamWriter writer = new System.IO.StreamWriter(client.GetStream());
writer.Write(ZPLString);
writer.Flush();
// Close Connection
writer.Close();
client.Close();

编辑: *端口6101是斑马打印机的默认值,9100是替代端口

结合OP的问题,Johan的答案为您提供了使用PrintServer的有效文档:

LocalPrintServer localPrintServer = new LocalPrintServer();
// List the print server's queues
PrintQueue pq = localPrintServer.GetPrintQueue(@"Boca FGL 200 DPI");
PrintSystemJobInfo job = pq.AddJob();  
System.IO.StreamWriter writer = new System.IO.StreamWriter(job.JobStream);
writer.Write(@"hello world<p>");
writer.Flush();

最新更新