首页 文章

通过PrintServer将原始ZPL发送到Zebra打印机不起作用

提问于
浏览
3

Problem

我正在尝试将zpl RAW发送到打印服务器 . 有一台Zebra ZM400打印机 . 我可以得到PrintServer,PrintQueue对象 . 此外,我可以添加一个作业,并写入其JobStream .

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

Progress

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

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();

Issue

当我检查打印队列(在Windows上)时,文档有0个字节 . 然后,打印机什么都不打印 .

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

2 回答

  • 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是Zebra打印机的默认设置,9100是备用端口

  • 0

    结合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();
    

相关问题