【问题标题】:zebra 3842 - slow label printing with .netzebra 3842 - 使用 .net 进行慢速标签打印
【发布时间】:2013-10-24 21:13:42
【问题描述】:

我遇到了斑马 3842 标签打印机工作缓慢的问题。

我使用标准的 .net 打印框架。 (System.Drawing.Printing.PrintDocument) 在我调用 PrintDocument 的 Print() 函数后,打印机等待几秒钟并打印第一个标签。然后它再次等待一秒钟并拉回标签并打印。过程是这样的。

您可以从以下视频中看到情况:(单张印刷电话,3 页) http://www.youtube.com/watch?v=DeIoO6qT0kE

我尝试使用 Microsoft Word 应用程序打印 3 页。 (同样的情况也存在) 但是,如果我使用 Zebra 的软件打印标签,它可以正常工作,没有延迟。

我还安装了最新的驱动程序。

我是标签打印的新手,所以我向有经验的人寻求帮助。 可能是什么问题?我应该先检查什么?

提前致谢。

【问题讨论】:

    标签: .net performance printing label


    【解决方案1】:

    就目前而言,您使用的类 (PrintDocument) 不理解打印机的母语(EPL - 我认为!)。即使您的标签设计很简单,PrintDocument 也无法生成 EPL,因此它只是创建一个与整个标签大小相同的图像并将该图像发送到 Zebra 打印机驱动程序。由于司机只是收到一张图像,它并不“知道”您实际上只是在打印文本和一两个框。相反,它将整个标签发送到打印机进行打印。因此,现在不仅发送一些轻量级的 EPL 文本命令,还发送将整个标签区域表示为图像的数据。这意味着您发送的是千字节数据而不是字节数据。此外,驱动程序必须将图像数据转换为大型 EPL 图形命令。

    我看到了一种明显的替代方法,具体取决于您使用的连接方式。它要求您阅读一点 EPL 手册,并整理出适合您的标签设计。您可以在此处查看示例 EPL 标签:https://support.zebra.com/cpws/docs/eltron/common/epl2_samp.htm,并在此处查看 EPL 手册:https://support.zebra.com/cpws/docs/eltron/epl2/EPL2_Prog.pdf

    如果使用 USB:

    使用 RawPrinterHelper 通过驱动向打印机发送纯 EPL 命令:

    http://support.microsoft.com/kb/322091

    string printerName = "Your_Printer_Driver_Name";
    string eplCommand = "N\r\nA50,0,0,1,1,1,N,\"Example 1\"\r\nP1\r\n";
    RawPrinterHelper.SendStringToPrinter(printerName , eplCommand );
    

    如果您使用 TCP(以太网):

    你的工作更简单。你甚至不需要司机。只需通过 TCP 连接将 EPL 发送到打印机:

    string eplString = "N\r\nA50,0,0,1,1,1,N,\"Example 1\"\r\nP1\r\n";
    
    // Open connection
    System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
    client.Connect(ipAddress, port);
    
    // Write EPL String to connection
    System.IO.StreamWriter writer = new System.IO.StreamWriter(client.GetStream());
    writer.Write(eplString );
    writer.Flush();
    
    // Close Connection
    writer.Close();
    client.Close();
    

    【讨论】:

    • 嗨,杰森,感谢您的回答。实际上我也尝试过使用 EPL 命令。 (我也使用 RawPrinterHelper 类)通常,如果我们发送 EPL 而不是使用 PrintDocument,打印机会更快地启动作业。有趣的是,如果我发送“P2,1”命令打印 2 个标签副本,它会立即打印出来。但是,如果我尝试使用“N ... P1 ... N ... P1”命令打印 2 个不同的标签,它会在每个标签后等待 2-3 秒,如视频中所示。这是有趣的部分:如果我为标签发送非常短的 EPL 命令(例如只打印 1 个文本),它不会在标签之间休眠。
    • ..如果我使用“Zebra Setup Utilities”中的“与打印机直接通信”,这种情况不会改变。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多