从c#开始对ZPL打印机进行编程切割

时间:2017-03-01 09:19:07

标签: c# printing zpl

我正在使用C#开发一个程序来处理与UPS的运输请求,在客户数据库中注册它们并将新标签发送到联网的ZPL打印机。

我们正在使用带切割器的GX420T Zebra打印机。打印标签可通过IP无问题地工作。

我在切割标签时遇到了问题。客户希望连接每个货件的标签,但与其他货件的标签分开。 (即仅在打印完所有货物的标签后进行切割)对于单个标签的装运,标签按预期切割。随着多个标签的出货,切割机永远不会运行。

        bool print = true; //true: If printing fails on the first label,
                           // do not try the rest.
                           //false: do not print

        //Set printer mode
        print = parseZPL.printZPL_IP(@"^XA^MMD^XZ");

        //Save and print Package labels
        foreach (XElement package in Packages)
        {   //Parse XML
            if (package.Name.LocalName == "PackageResults")
            {
                //Pulling Package and Shipping label information from XML
                string ShippingLabel = package.Element(ship + "ShippingLabel").Element(ship + "GraphicImage").Value;

                //convert string to Base64
                byte[] ZPLbytes = Convert.FromBase64String(ShippingLabel);

                if (print)
                {
                    print = parseZPL.printZPL_IP(System.Text.Encoding.ASCII.GetString(ZPLbytes));
                }
            }
        };

        if (print)
        {
            print = parseZPL.printZPL_IP(@"~JK");
        }

我尝试在~JK命令之前添加sleep()命令,但没有成功。我在没有找到有效的解决方案的情况下搜索了ZPL文档。

任何建议都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

打印一批标签时,我认为您需要在第一个标签的开头设置^MMT(撕掉),并在最后一个标签的开头设置^MMC(剪切)。 / p>