PNG Zebra 打印机命令 - 它们是什么意思?

PNG Zebra Printer Commands - What do they mean?

我从另一个问题(最高分答案)中复制了这个。当 运行 它时,我没有收到任何错误,但它也没有打印任何东西。

我的 PNG - 删除了个人内容

我的问题是,他们使用的代码是什么?

zplToSend

  1. "^XA" - 开始
  2. "^MNN" - 看不到这是什么
  3. "^LL500" - 我的图像被 gaps/spaces 等分隔,所以我需要这个吗?
  4. "~DYE:LOGO,P,P," - 似乎用于将其存储到永久闪存中,不确定我是否热衷于此。我想马上打印,为什么要永久打印
  5. binaryData.Length - 为什么这是 binaryData.Length 而不是 zplImageData.Length
  6. zplImageData
  7. “^XZ”- 结束

打印图片

  1. "^XA" - 开始
  2. ^IME:LOGO.PNG - 这是对 ~DYE:Logo 的引用吗?
  3. ^XZ" - 结束

        var ipAddress = "192.168.1.30";
        var port = 9100;
    
        string zplImageData = string.Empty;
        //Make sure no transparency exists. I had some trouble with this. This PNG has a white background
        string filePath = @"C:\Users\Path\To\Logo.png";
        byte[] binaryData = System.IO.File.ReadAllBytes(filePath);
        foreach (Byte b in binaryData)
        {
            string hexRep = String.Format("{0:X}", b);
            if (hexRep.Length == 1)
                hexRep = "0" + hexRep;
            zplImageData += hexRep;
        }
        string zplToSend = "^XA" + "^MNN" + "^LL500" + "~DYE:LOGO,P,P," + binaryData.Length + ",," + zplImageData + "^XZ";
        string printImage = "^XA^IME:LOGO.PNG^XZ";
    
        try
        {
            // Open connection
            System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
            client.Connect(ipAddress, port);
    
            // Write ZPL String to connection
            System.IO.StreamWriter writer = new System.IO.StreamWriter(client.GetStream(), Encoding.UTF8);
            writer.Write(zplToSend);
            writer.Flush();
            writer.Write(printImage);
            writer.Flush();
            // Close Connection
            writer.Close();
            client.Close();
        }
        catch (Exception ex)
        {
            // Catch Exception
        }
    

也累

    string zplToSend = "^XA" + "~DYR:LOGO,P,P," + binaryData.Length + ",," + zplImageData + "^XZ";
    string printImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

并且:

        string zplToSend = "^XA" + "~DYR:LOGO,P,P," + binaryData.Length + ",," + zplImageData + "^XZ";
        string printImage = "^XA^ILR:LOGO.PNG^XZ";

None return 错误,不打印。

PrintImage

^XA 开始格式说明 ^XA 命令用于 ZPL II 代码的开头。它是左括号,表示新标签格式的开始。此命令替换为单个 ASCII 控制字符 STX(control-B,十六进制 02)。格式 ^XA 注释 有效的 ZPL II 格式要求标签格式应以 ^XA 命令开始并以 ^XZ 命令结束。

^FO 字段原点描述 ^FO 命令设置字段原点,相对于标签原点 (^LH) 位置。 ^FO 通过定义与旋转无关的沿 x 轴和 y 轴的点来设置字段区域的左上角。格式 ^FOx,y,z

  • x = x 轴位置(以点为单位)接受的值:0 到 32000 默认值 值:0
  • y = y 轴位置(以点为单位)接受的值:0 到 32000 默认值:0
  • z = justification z参数只是 在固件版本 V60.14.x、V50.14.x 或更高版本中受支持。公认 值:0 = 左对齐 1 = 右对齐 2 = 自动 理由(取决于脚本)默认值:最后接受 ^FW 值或 ^FW 默认值

^IM 图像移动 描述 ^IM 命令将图像从存储区域直接移动到位图中。该命令与 ^XG 命令(调用图形)相同,只是没有尺寸参数。格式 ^IMd:o.x

  • d = 存储对象的位置接受值:R:、E:、B: 和 A:默认值:搜索优先级
  • o = 对象名称接受值:1 到 8 个字母数字字符默认值:如果未指定名称,则使用 UNKNOWN
  • x = 扩展名固定值:.GRF、.PNG

^FS 字段分隔符说明 ^FS 命令表示字段定义的结尾。或者,^FS 命令也可以作为单个 ASCII 控制代码 SI(Control-O,十六进制 0F)发出。格式 ^FS

^XZ 结束格式说明 ^XZ 命令是结束(结束)括号。它指示标签格式的结束。收到此命令时,将打印标签。此命令也可以作为单个 ASCII 控制字符 ETX(Control-C,十六进制 03)发出。 Format ^XZ Comments 标签格式必须以 ^XA 命令开始并以 ^XZ 命令结束才能成为有效的 ZPL II 格式。

zplToSend

^MN 媒体跟踪 说明 此命令指定正在使用的媒体类型和以点为单位的黑标偏移量。此项目符号列表显示与此命令关联的媒体类型:

  • 连续介质 – 这种介质没有物理特征(例如网状物、缺口、穿孔、黑标)来分隔标签。标签长度由 ^LL 命令决定。
  • Continuous Media,可变长度 – 与 Continuous Media 相同,但如果打印标签的部分超出定义的标签长度​​,标签尺寸将自动扩展以包含它们。此标签长度扩展仅适用于当前标签。请注意,^MNV 仍然需要使用 ^LL 命令来定义初始所需的标签长度​​。
  • 非连续介质 – 这种介质具有某种类型的物理特性(例如网状、凹口、穿孔、黑标)来分隔标签。

格式 ^MNa,b

  • a =(必需)正在使用的媒体。可接受的值:
    • N = 连续介质
    • Y = 非连续介质网络感应
    • W = 非连续介质网络感应
    • M = 非连续介质标记检测
    • A = 在校准期间自动检测介质类型
    • V = 连续介质,可变长度
  • b = 黑色标记偏移量(以点为单位) 这设置了介质标记相对于文档分隔点的预期位置。如果设置为 0,则应在分离点找到介质标记。 (即穿孔、切割点等)所有值都以点列出。除非 a 参数设置为 M,否则忽略此参数。如果缺少此参数,则使用默认值。可接受的值: -80 到 283 对于热敏打印机 -240 到 566 对于 600 dpi 打印机 -75 到 283 对于 KR403 打印机 -120 到 283 对于所有其他打印机默认值:0

~DY 下载对象 描述 ~DY 命令以任何支持的格式下载到打印机图形对象或字体。可以使用此命令代替 ~DG 以获得更多保存和加载选项。 ~DY 是在固件高于 X.13 的打印机上下载 TrueType 字体的首选命令。它比 ~DU 快。 ~DY 命令还支持下载无线证书文件。格式 ~DYd:f,b,x,t,w,data

备注 使用证书文件时,您的打印机支持:

  • 使用隐私增强邮件 (PEM) 格式的证书文件。

  • 使用客户端证书和私钥作为两个文件,分别下载。

  • 为 EAP-FAST 使用可导出的 PAC 文件。

  • Zebra 建议使用线性麦粒肿

  • d = 文件位置 .NRD 和 .PAC 文件驻留在 E: 固件版本 V60.15.x、V50.15.x 或更高版本中。接受值:R:、E:、B: 和 A:默认值:R:

  • f = 文件名接受值:1 到 8 个字母数字字符默认值:如果未指定名称,则使用 UNKNOWN

  • b = 数据字段中下载的格式 .TTE 和 .TTF 仅在固件版本 V60.14.x、V50.14.x 或更高版本中受支持。可接受的值: A = 未压缩(ZB64、ASCII) B = 未压缩(.TTE、.TTF、二进制) C = AR 压缩(仅由 Zebra 的 BAR-ONE® v5 使用) P = 便携式网络图形 (.PNG) - ZB64编码默认值:必须指定一个值