Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Printing Zebra打印机-不打印PNG流*提供了我自己的答案*_Printing_Crc_Zebra Printers - Fatal编程技术网

Printing Zebra打印机-不打印PNG流*提供了我自己的答案*

Printing Zebra打印机-不打印PNG流*提供了我自己的答案*,printing,crc,zebra-printers,Printing,Crc,Zebra Printers,我想我很快就能把它打印出来了。然而,它仍然不是。没有抛出异常,它似乎确实击中了zebra打印机,但什么也没有。这是一个很长的机会,因为我认为大多数人都处于和我相同的位置,对它知之甚少。任何人能给予的任何帮助,无论多么微不足道,都会受到欢迎,我正在失去生存的意志 using (var response = request.GetResponse()) { using (var responseStream = response.GetResp

我想我很快就能把它打印出来了。然而,它仍然不是。没有抛出异常,它似乎确实击中了zebra打印机,但什么也没有。这是一个很长的机会,因为我认为大多数人都处于和我相同的位置,对它知之甚少。任何人能给予的任何帮助,无论多么微不足道,都会受到欢迎,我正在失去生存的意志

using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var stream = new MemoryStream())
                    {
                        if (responseStream == null)
                        {
                            return;
                        }

                        responseStream.CopyTo(stream);
                        stream.Position = 0;

                        using (var zipout = ZipFile.Read(stream))
                        {
                            using (var ms = new MemoryStream())
                            {
                                foreach (var e in zipout.Where(e => e.FileName.Contains(".png")))
                                {
                                    e.Extract(ms);
                                }

                                if (ms.Length <= 0)
                                {
                                    return;
                                }

                                var binaryData = ms.ToArray();

                                byte[] compressedFileData;

                                //  Compress the data using the LZ77 algorithm.
                                using (var outStream = new MemoryStream())
                                {
                                    using (var compress = new DeflateStream(outStream, CompressionMode.Compress, true))
                                    {
                                        compress.Write(binaryData, 0, binaryData.Length);
                                        compress.Flush();
                                        compress.Close();
                                    }
                                    compressedFileData = outStream.ToArray();
                                }

                                //  Encode the compressed data using the MIME Base64 algorithm.
                                var base64 = Convert.ToBase64String(compressedFileData);

                                //  Calculate a CRC across the encoded data.
                                var crc = Calc(Convert.FromBase64String(base64));

                                //  Add a unique header to differentiate the new format from the existing ASCII hexadecimal encoding.
                                var finalData = string.Format(":Z64:{0}:{1}", base64, crc);

                                var zplToSend = "~DYR:LOGO,P,P," + finalData.Length + ",," + finalData;
                                const string PrintImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

                                try
                                {
                                    var client = new System.Net.Sockets.TcpClient();
                                    client.Connect(IpAddress, Port);

                                    var writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
                                    writer.Write(zplToSend);
                                    writer.Flush();
                                    writer.Write(PrintImage);
                                    writer.Close();
                                    client.Close();
                                }
                                catch (Exception ex)
                                {
                                    // Catch Exception
                                }
                            }
                        }
                    }
                }
            }

    private static ushort Calc(byte[] data)
    {
        ushort wCrc = 0;

        for (var i = 0; i < data.Length; i++)
        {
            wCrc ^= (ushort)(data[i] << 8);

            for (var j = 0; j < 8; j++)
            {
                if ((wCrc & 0x8000) != 0)
                {
                    wCrc = (ushort)((wCrc << 1) ^ 0x1021);
                }
                else
                {
                    wCrc <<= 1;
                }
            }
        }

        return wCrc;
    }
使用(var response=request.GetResponse())
{
使用(var responseStream=response.GetResponseStream())
{
使用(var stream=new MemoryStream())
{
if(responseStream==null)
{
返回;
}
responseStream.CopyTo(流);
流位置=0;
使用(var zipout=ZipFile.Read(stream))
{
使用(var ms=new MemoryStream())
{
foreach(zipout.Where(e=>e.FileName.Contains(“.png”))中的变量e)
{
e、 提取物(ms);
}

如果(ms.Length以下代码适用于我。问题是命令,这些命令非常重要!下面是我使用的命令概述,可以找到更多

using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var stream = new MemoryStream())
                    {
                        if (responseStream == null)
                        {
                            return;
                        }

                        responseStream.CopyTo(stream);
                        stream.Position = 0;

                        using (var zipout = ZipFile.Read(stream))
                        {
                            using (var ms = new MemoryStream())
                            {
                                foreach (var e in zipout.Where(e => e.FileName.Contains(".png")))
                                {
                                    e.Extract(ms);
                                }

                                if (ms.Length <= 0)
                                {
                                    return;
                                }

                                var binaryData = ms.ToArray();

                                byte[] compressedFileData;

                                //  Compress the data using the LZ77 algorithm.
                                using (var outStream = new MemoryStream())
                                {
                                    using (var compress = new DeflateStream(outStream, CompressionMode.Compress, true))
                                    {
                                        compress.Write(binaryData, 0, binaryData.Length);
                                        compress.Flush();
                                        compress.Close();
                                    }
                                    compressedFileData = outStream.ToArray();
                                }

                                //  Encode the compressed data using the MIME Base64 algorithm.
                                var base64 = Convert.ToBase64String(compressedFileData);

                                //  Calculate a CRC across the encoded data.
                                var crc = Calc(Convert.FromBase64String(base64));

                                //  Add a unique header to differentiate the new format from the existing ASCII hexadecimal encoding.
                                var finalData = string.Format(":Z64:{0}:{1}", base64, crc);

                                var zplToSend = "~DYR:LOGO,P,P," + finalData.Length + ",," + finalData;
                                const string PrintImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

                                try
                                {
                                    var client = new System.Net.Sockets.TcpClient();
                                    client.Connect(IpAddress, Port);

                                    var writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
                                    writer.Write(zplToSend);
                                    writer.Flush();
                                    writer.Write(PrintImage);
                                    writer.Close();
                                    client.Close();
                                }
                                catch (Exception ex)
                                {
                                    // Catch Exception
                                }
                            }
                        }
                    }
                }
            }

    private static ushort Calc(byte[] data)
    {
        ushort wCrc = 0;

        for (var i = 0; i < data.Length; i++)
        {
            wCrc ^= (ushort)(data[i] << 8);

            for (var j = 0; j < 8; j++)
            {
                if ((wCrc & 0x8000) != 0)
                {
                    wCrc = (ushort)((wCrc << 1) ^ 0x1021);
                }
                else
                {
                    wCrc <<= 1;
                }
            }
        }

        return wCrc;
    }
打印图像

using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var stream = new MemoryStream())
                    {
                        if (responseStream == null)
                        {
                            return;
                        }

                        responseStream.CopyTo(stream);
                        stream.Position = 0;

                        using (var zipout = ZipFile.Read(stream))
                        {
                            using (var ms = new MemoryStream())
                            {
                                foreach (var e in zipout.Where(e => e.FileName.Contains(".png")))
                                {
                                    e.Extract(ms);
                                }

                                if (ms.Length <= 0)
                                {
                                    return;
                                }

                                var binaryData = ms.ToArray();

                                byte[] compressedFileData;

                                //  Compress the data using the LZ77 algorithm.
                                using (var outStream = new MemoryStream())
                                {
                                    using (var compress = new DeflateStream(outStream, CompressionMode.Compress, true))
                                    {
                                        compress.Write(binaryData, 0, binaryData.Length);
                                        compress.Flush();
                                        compress.Close();
                                    }
                                    compressedFileData = outStream.ToArray();
                                }

                                //  Encode the compressed data using the MIME Base64 algorithm.
                                var base64 = Convert.ToBase64String(compressedFileData);

                                //  Calculate a CRC across the encoded data.
                                var crc = Calc(Convert.FromBase64String(base64));

                                //  Add a unique header to differentiate the new format from the existing ASCII hexadecimal encoding.
                                var finalData = string.Format(":Z64:{0}:{1}", base64, crc);

                                var zplToSend = "~DYR:LOGO,P,P," + finalData.Length + ",," + finalData;
                                const string PrintImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

                                try
                                {
                                    var client = new System.Net.Sockets.TcpClient();
                                    client.Connect(IpAddress, Port);

                                    var writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
                                    writer.Write(zplToSend);
                                    writer.Flush();
                                    writer.Write(PrintImage);
                                    writer.Close();
                                    client.Close();
                                }
                                catch (Exception ex)
                                {
                                    // Catch Exception
                                }
                            }
                        }
                    }
                }
            }

    private static ushort Calc(byte[] data)
    {
        ushort wCrc = 0;

        for (var i = 0; i < data.Length; i++)
        {
            wCrc ^= (ushort)(data[i] << 8);

            for (var j = 0; j < 8; j++)
            {
                if ((wCrc & 0x8000) != 0)
                {
                    wCrc = (ushort)((wCrc << 1) ^ 0x1021);
                }
                else
                {
                    wCrc <<= 1;
                }
            }
        }

        return wCrc;
    }
^XA 开始格式说明^XA命令用于ZPL II代码的开头。它是开始括号,表示新标签格式的开始。此命令由单个ASCII控制字符STX(control-B,十六进制02)替代.Format ^XA Comments有效的ZPL II格式要求标签格式以^XA命令开头,以^XZ命令结尾

using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var stream = new MemoryStream())
                    {
                        if (responseStream == null)
                        {
                            return;
                        }

                        responseStream.CopyTo(stream);
                        stream.Position = 0;

                        using (var zipout = ZipFile.Read(stream))
                        {
                            using (var ms = new MemoryStream())
                            {
                                foreach (var e in zipout.Where(e => e.FileName.Contains(".png")))
                                {
                                    e.Extract(ms);
                                }

                                if (ms.Length <= 0)
                                {
                                    return;
                                }

                                var binaryData = ms.ToArray();

                                byte[] compressedFileData;

                                //  Compress the data using the LZ77 algorithm.
                                using (var outStream = new MemoryStream())
                                {
                                    using (var compress = new DeflateStream(outStream, CompressionMode.Compress, true))
                                    {
                                        compress.Write(binaryData, 0, binaryData.Length);
                                        compress.Flush();
                                        compress.Close();
                                    }
                                    compressedFileData = outStream.ToArray();
                                }

                                //  Encode the compressed data using the MIME Base64 algorithm.
                                var base64 = Convert.ToBase64String(compressedFileData);

                                //  Calculate a CRC across the encoded data.
                                var crc = Calc(Convert.FromBase64String(base64));

                                //  Add a unique header to differentiate the new format from the existing ASCII hexadecimal encoding.
                                var finalData = string.Format(":Z64:{0}:{1}", base64, crc);

                                var zplToSend = "~DYR:LOGO,P,P," + finalData.Length + ",," + finalData;
                                const string PrintImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

                                try
                                {
                                    var client = new System.Net.Sockets.TcpClient();
                                    client.Connect(IpAddress, Port);

                                    var writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
                                    writer.Write(zplToSend);
                                    writer.Flush();
                                    writer.Write(PrintImage);
                                    writer.Close();
                                    client.Close();
                                }
                                catch (Exception ex)
                                {
                                    // Catch Exception
                                }
                            }
                        }
                    }
                }
            }

    private static ushort Calc(byte[] data)
    {
        ushort wCrc = 0;

        for (var i = 0; i < data.Length; i++)
        {
            wCrc ^= (ushort)(data[i] << 8);

            for (var j = 0; j < 8; j++)
            {
                if ((wCrc & 0x8000) != 0)
                {
                    wCrc = (ushort)((wCrc << 1) ^ 0x1021);
                }
                else
                {
                    wCrc <<= 1;
                }
            }
        }

        return wCrc;
    }
^FO 字段原点说明^FO命令设置相对于标签原点(^LH)位置的字段原点。^FO通过沿x轴和y轴定义独立于旋转的点来设置字段区域的左上角。格式^FOx,y,z

using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var stream = new MemoryStream())
                    {
                        if (responseStream == null)
                        {
                            return;
                        }

                        responseStream.CopyTo(stream);
                        stream.Position = 0;

                        using (var zipout = ZipFile.Read(stream))
                        {
                            using (var ms = new MemoryStream())
                            {
                                foreach (var e in zipout.Where(e => e.FileName.Contains(".png")))
                                {
                                    e.Extract(ms);
                                }

                                if (ms.Length <= 0)
                                {
                                    return;
                                }

                                var binaryData = ms.ToArray();

                                byte[] compressedFileData;

                                //  Compress the data using the LZ77 algorithm.
                                using (var outStream = new MemoryStream())
                                {
                                    using (var compress = new DeflateStream(outStream, CompressionMode.Compress, true))
                                    {
                                        compress.Write(binaryData, 0, binaryData.Length);
                                        compress.Flush();
                                        compress.Close();
                                    }
                                    compressedFileData = outStream.ToArray();
                                }

                                //  Encode the compressed data using the MIME Base64 algorithm.
                                var base64 = Convert.ToBase64String(compressedFileData);

                                //  Calculate a CRC across the encoded data.
                                var crc = Calc(Convert.FromBase64String(base64));

                                //  Add a unique header to differentiate the new format from the existing ASCII hexadecimal encoding.
                                var finalData = string.Format(":Z64:{0}:{1}", base64, crc);

                                var zplToSend = "~DYR:LOGO,P,P," + finalData.Length + ",," + finalData;
                                const string PrintImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

                                try
                                {
                                    var client = new System.Net.Sockets.TcpClient();
                                    client.Connect(IpAddress, Port);

                                    var writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
                                    writer.Write(zplToSend);
                                    writer.Flush();
                                    writer.Write(PrintImage);
                                    writer.Close();
                                    client.Close();
                                }
                                catch (Exception ex)
                                {
                                    // Catch Exception
                                }
                            }
                        }
                    }
                }
            }

    private static ushort Calc(byte[] data)
    {
        ushort wCrc = 0;

        for (var i = 0; i < data.Length; i++)
        {
            wCrc ^= (ushort)(data[i] << 8);

            for (var j = 0; j < 8; j++)
            {
                if ((wCrc & 0x8000) != 0)
                {
                    wCrc = (ushort)((wCrc << 1) ^ 0x1021);
                }
                else
                {
                    wCrc <<= 1;
                }
            }
        }

        return wCrc;
    }
  • x=x轴位置(以点为单位)接受值:0到32000默认值 数值:0
  • y=y轴位置(以点为单位)接受值:0到32000 默认值:0
  • z=对齐z参数仅为 固件版本V60.14.x、V50.14.x或更高版本支持。已接受 值:0=左对齐1=右对齐2=自动 对齐(取决于脚本)默认值:上次接受^FW 值或^FW默认值
^IM 图像移动说明^IM命令将图像从存储区域直接移动到位图中。该命令与^XG命令(调用图形)相同,只是没有大小调整参数。格式^IMd:o.x

using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var stream = new MemoryStream())
                    {
                        if (responseStream == null)
                        {
                            return;
                        }

                        responseStream.CopyTo(stream);
                        stream.Position = 0;

                        using (var zipout = ZipFile.Read(stream))
                        {
                            using (var ms = new MemoryStream())
                            {
                                foreach (var e in zipout.Where(e => e.FileName.Contains(".png")))
                                {
                                    e.Extract(ms);
                                }

                                if (ms.Length <= 0)
                                {
                                    return;
                                }

                                var binaryData = ms.ToArray();

                                byte[] compressedFileData;

                                //  Compress the data using the LZ77 algorithm.
                                using (var outStream = new MemoryStream())
                                {
                                    using (var compress = new DeflateStream(outStream, CompressionMode.Compress, true))
                                    {
                                        compress.Write(binaryData, 0, binaryData.Length);
                                        compress.Flush();
                                        compress.Close();
                                    }
                                    compressedFileData = outStream.ToArray();
                                }

                                //  Encode the compressed data using the MIME Base64 algorithm.
                                var base64 = Convert.ToBase64String(compressedFileData);

                                //  Calculate a CRC across the encoded data.
                                var crc = Calc(Convert.FromBase64String(base64));

                                //  Add a unique header to differentiate the new format from the existing ASCII hexadecimal encoding.
                                var finalData = string.Format(":Z64:{0}:{1}", base64, crc);

                                var zplToSend = "~DYR:LOGO,P,P," + finalData.Length + ",," + finalData;
                                const string PrintImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

                                try
                                {
                                    var client = new System.Net.Sockets.TcpClient();
                                    client.Connect(IpAddress, Port);

                                    var writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
                                    writer.Write(zplToSend);
                                    writer.Flush();
                                    writer.Write(PrintImage);
                                    writer.Close();
                                    client.Close();
                                }
                                catch (Exception ex)
                                {
                                    // Catch Exception
                                }
                            }
                        }
                    }
                }
            }

    private static ushort Calc(byte[] data)
    {
        ushort wCrc = 0;

        for (var i = 0; i < data.Length; i++)
        {
            wCrc ^= (ushort)(data[i] << 8);

            for (var j = 0; j < 8; j++)
            {
                if ((wCrc & 0x8000) != 0)
                {
                    wCrc = (ushort)((wCrc << 1) ^ 0x1021);
                }
                else
                {
                    wCrc <<= 1;
                }
            }
        }

        return wCrc;
    }
  • d=存储对象接受值的位置:R:、E:、B:、A:默认值:搜索优先级
  • o=对象名称接受值:1到8个字母数字字符默认值:如果未指定名称,则使用UNKNOWN
  • x=扩展固定值:.GRF、.PNG
^FS 字段分隔符说明^FS命令表示字段定义的结尾。或者,^FS命令也可以作为单个ASCII控制代码SI(control-O,十六进制0F)发出。格式^FS

using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var stream = new MemoryStream())
                    {
                        if (responseStream == null)
                        {
                            return;
                        }

                        responseStream.CopyTo(stream);
                        stream.Position = 0;

                        using (var zipout = ZipFile.Read(stream))
                        {
                            using (var ms = new MemoryStream())
                            {
                                foreach (var e in zipout.Where(e => e.FileName.Contains(".png")))
                                {
                                    e.Extract(ms);
                                }

                                if (ms.Length <= 0)
                                {
                                    return;
                                }

                                var binaryData = ms.ToArray();

                                byte[] compressedFileData;

                                //  Compress the data using the LZ77 algorithm.
                                using (var outStream = new MemoryStream())
                                {
                                    using (var compress = new DeflateStream(outStream, CompressionMode.Compress, true))
                                    {
                                        compress.Write(binaryData, 0, binaryData.Length);
                                        compress.Flush();
                                        compress.Close();
                                    }
                                    compressedFileData = outStream.ToArray();
                                }

                                //  Encode the compressed data using the MIME Base64 algorithm.
                                var base64 = Convert.ToBase64String(compressedFileData);

                                //  Calculate a CRC across the encoded data.
                                var crc = Calc(Convert.FromBase64String(base64));

                                //  Add a unique header to differentiate the new format from the existing ASCII hexadecimal encoding.
                                var finalData = string.Format(":Z64:{0}:{1}", base64, crc);

                                var zplToSend = "~DYR:LOGO,P,P," + finalData.Length + ",," + finalData;
                                const string PrintImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

                                try
                                {
                                    var client = new System.Net.Sockets.TcpClient();
                                    client.Connect(IpAddress, Port);

                                    var writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
                                    writer.Write(zplToSend);
                                    writer.Flush();
                                    writer.Write(PrintImage);
                                    writer.Close();
                                    client.Close();
                                }
                                catch (Exception ex)
                                {
                                    // Catch Exception
                                }
                            }
                        }
                    }
                }
            }

    private static ushort Calc(byte[] data)
    {
        ushort wCrc = 0;

        for (var i = 0; i < data.Length; i++)
        {
            wCrc ^= (ushort)(data[i] << 8);

            for (var j = 0; j < 8; j++)
            {
                if ((wCrc & 0x8000) != 0)
                {
                    wCrc = (ushort)((wCrc << 1) ^ 0x1021);
                }
                else
                {
                    wCrc <<= 1;
                }
            }
        }

        return wCrc;
    }
^XZ 结束格式说明^XZ命令是结束(结束)括号。它表示标签格式的结束。收到此命令时,打印标签。此命令也可以作为单个ASCII控制字符ETX(control-C,十六进制03)发出.Format ^XZ Comments标签格式必须以^XA命令开头,以^XZ命令结尾,才能使用有效的ZPL II格式

using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var stream = new MemoryStream())
                    {
                        if (responseStream == null)
                        {
                            return;
                        }

                        responseStream.CopyTo(stream);
                        stream.Position = 0;

                        using (var zipout = ZipFile.Read(stream))
                        {
                            using (var ms = new MemoryStream())
                            {
                                foreach (var e in zipout.Where(e => e.FileName.Contains(".png")))
                                {
                                    e.Extract(ms);
                                }

                                if (ms.Length <= 0)
                                {
                                    return;
                                }

                                var binaryData = ms.ToArray();

                                byte[] compressedFileData;

                                //  Compress the data using the LZ77 algorithm.
                                using (var outStream = new MemoryStream())
                                {
                                    using (var compress = new DeflateStream(outStream, CompressionMode.Compress, true))
                                    {
                                        compress.Write(binaryData, 0, binaryData.Length);
                                        compress.Flush();
                                        compress.Close();
                                    }
                                    compressedFileData = outStream.ToArray();
                                }

                                //  Encode the compressed data using the MIME Base64 algorithm.
                                var base64 = Convert.ToBase64String(compressedFileData);

                                //  Calculate a CRC across the encoded data.
                                var crc = Calc(Convert.FromBase64String(base64));

                                //  Add a unique header to differentiate the new format from the existing ASCII hexadecimal encoding.
                                var finalData = string.Format(":Z64:{0}:{1}", base64, crc);

                                var zplToSend = "~DYR:LOGO,P,P," + finalData.Length + ",," + finalData;
                                const string PrintImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

                                try
                                {
                                    var client = new System.Net.Sockets.TcpClient();
                                    client.Connect(IpAddress, Port);

                                    var writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
                                    writer.Write(zplToSend);
                                    writer.Flush();
                                    writer.Write(PrintImage);
                                    writer.Close();
                                    client.Close();
                                }
                                catch (Exception ex)
                                {
                                    // Catch Exception
                                }
                            }
                        }
                    }
                }
            }

    private static ushort Calc(byte[] data)
    {
        ushort wCrc = 0;

        for (var i = 0; i < data.Length; i++)
        {
            wCrc ^= (ushort)(data[i] << 8);

            for (var j = 0; j < 8; j++)
            {
                if ((wCrc & 0x8000) != 0)
                {
                    wCrc = (ushort)((wCrc << 1) ^ 0x1021);
                }
                else
                {
                    wCrc <<= 1;
                }
            }
        }

        return wCrc;
    }
zplToSend

using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var stream = new MemoryStream())
                    {
                        if (responseStream == null)
                        {
                            return;
                        }

                        responseStream.CopyTo(stream);
                        stream.Position = 0;

                        using (var zipout = ZipFile.Read(stream))
                        {
                            using (var ms = new MemoryStream())
                            {
                                foreach (var e in zipout.Where(e => e.FileName.Contains(".png")))
                                {
                                    e.Extract(ms);
                                }

                                if (ms.Length <= 0)
                                {
                                    return;
                                }

                                var binaryData = ms.ToArray();

                                byte[] compressedFileData;

                                //  Compress the data using the LZ77 algorithm.
                                using (var outStream = new MemoryStream())
                                {
                                    using (var compress = new DeflateStream(outStream, CompressionMode.Compress, true))
                                    {
                                        compress.Write(binaryData, 0, binaryData.Length);
                                        compress.Flush();
                                        compress.Close();
                                    }
                                    compressedFileData = outStream.ToArray();
                                }

                                //  Encode the compressed data using the MIME Base64 algorithm.
                                var base64 = Convert.ToBase64String(compressedFileData);

                                //  Calculate a CRC across the encoded data.
                                var crc = Calc(Convert.FromBase64String(base64));

                                //  Add a unique header to differentiate the new format from the existing ASCII hexadecimal encoding.
                                var finalData = string.Format(":Z64:{0}:{1}", base64, crc);

                                var zplToSend = "~DYR:LOGO,P,P," + finalData.Length + ",," + finalData;
                                const string PrintImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

                                try
                                {
                                    var client = new System.Net.Sockets.TcpClient();
                                    client.Connect(IpAddress, Port);

                                    var writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
                                    writer.Write(zplToSend);
                                    writer.Flush();
                                    writer.Write(PrintImage);
                                    writer.Close();
                                    client.Close();
                                }
                                catch (Exception ex)
                                {
                                    // Catch Exception
                                }
                            }
                        }
                    }
                }
            }

    private static ushort Calc(byte[] data)
    {
        ushort wCrc = 0;

        for (var i = 0; i < data.Length; i++)
        {
            wCrc ^= (ushort)(data[i] << 8);

            for (var j = 0; j < 8; j++)
            {
                if ((wCrc & 0x8000) != 0)
                {
                    wCrc = (ushort)((wCrc << 1) ^ 0x1021);
                }
                else
                {
                    wCrc <<= 1;
                }
            }
        }

        return wCrc;
    }
^MN 介质跟踪说明此命令指定正在使用的介质类型和黑点偏移量。此项目符号列表显示与此命令关联的介质类型:

using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var stream = new MemoryStream())
                    {
                        if (responseStream == null)
                        {
                            return;
                        }

                        responseStream.CopyTo(stream);
                        stream.Position = 0;

                        using (var zipout = ZipFile.Read(stream))
                        {
                            using (var ms = new MemoryStream())
                            {
                                foreach (var e in zipout.Where(e => e.FileName.Contains(".png")))
                                {
                                    e.Extract(ms);
                                }

                                if (ms.Length <= 0)
                                {
                                    return;
                                }

                                var binaryData = ms.ToArray();

                                byte[] compressedFileData;

                                //  Compress the data using the LZ77 algorithm.
                                using (var outStream = new MemoryStream())
                                {
                                    using (var compress = new DeflateStream(outStream, CompressionMode.Compress, true))
                                    {
                                        compress.Write(binaryData, 0, binaryData.Length);
                                        compress.Flush();
                                        compress.Close();
                                    }
                                    compressedFileData = outStream.ToArray();
                                }

                                //  Encode the compressed data using the MIME Base64 algorithm.
                                var base64 = Convert.ToBase64String(compressedFileData);

                                //  Calculate a CRC across the encoded data.
                                var crc = Calc(Convert.FromBase64String(base64));

                                //  Add a unique header to differentiate the new format from the existing ASCII hexadecimal encoding.
                                var finalData = string.Format(":Z64:{0}:{1}", base64, crc);

                                var zplToSend = "~DYR:LOGO,P,P," + finalData.Length + ",," + finalData;
                                const string PrintImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

                                try
                                {
                                    var client = new System.Net.Sockets.TcpClient();
                                    client.Connect(IpAddress, Port);

                                    var writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
                                    writer.Write(zplToSend);
                                    writer.Flush();
                                    writer.Write(PrintImage);
                                    writer.Close();
                                    client.Close();
                                }
                                catch (Exception ex)
                                {
                                    // Catch Exception
                                }
                            }
                        }
                    }
                }
            }

    private static ushort Calc(byte[] data)
    {
        ushort wCrc = 0;

        for (var i = 0; i < data.Length; i++)
        {
            wCrc ^= (ushort)(data[i] << 8);

            for (var j = 0; j < 8; j++)
            {
                if ((wCrc & 0x8000) != 0)
                {
                    wCrc = (ushort)((wCrc << 1) ^ 0x1021);
                }
                else
                {
                    wCrc <<= 1;
                }
            }
        }

        return wCrc;
    }
  • 连续介质–此介质没有物理特性(如卷筒纸、凹口、穿孔、黑色标记)来分隔标签。标签长度由^LL命令决定
  • 连续介质,可变长度–与连续介质相同,但如果打印标签的部分超出定义的标签长度,标签大小将自动扩展以包含它们。此标签长度扩展仅适用于当前标签。请注意,^MNV仍需要使用^LL命令定义初始值所有所需的标签长度
  • 非连续介质–该介质具有某种类型的物理特性(如卷筒纸、凹口、穿孔、黑色标记)来分隔标签
格式^MNa,b

using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    using (var stream = new MemoryStream())
                    {
                        if (responseStream == null)
                        {
                            return;
                        }

                        responseStream.CopyTo(stream);
                        stream.Position = 0;

                        using (var zipout = ZipFile.Read(stream))
                        {
                            using (var ms = new MemoryStream())
                            {
                                foreach (var e in zipout.Where(e => e.FileName.Contains(".png")))
                                {
                                    e.Extract(ms);
                                }

                                if (ms.Length <= 0)
                                {
                                    return;
                                }

                                var binaryData = ms.ToArray();

                                byte[] compressedFileData;

                                //  Compress the data using the LZ77 algorithm.
                                using (var outStream = new MemoryStream())
                                {
                                    using (var compress = new DeflateStream(outStream, CompressionMode.Compress, true))
                                    {
                                        compress.Write(binaryData, 0, binaryData.Length);
                                        compress.Flush();
                                        compress.Close();
                                    }
                                    compressedFileData = outStream.ToArray();
                                }

                                //  Encode the compressed data using the MIME Base64 algorithm.
                                var base64 = Convert.ToBase64String(compressedFileData);

                                //  Calculate a CRC across the encoded data.
                                var crc = Calc(Convert.FromBase64String(base64));

                                //  Add a unique header to differentiate the new format from the existing ASCII hexadecimal encoding.
                                var finalData = string.Format(":Z64:{0}:{1}", base64, crc);

                                var zplToSend = "~DYR:LOGO,P,P," + finalData.Length + ",," + finalData;
                                const string PrintImage = "^XA^FO0,0^IMR:LOGO.PNG^FS^XZ";

                                try
                                {
                                    var client = new System.Net.Sockets.TcpClient();
                                    client.Connect(IpAddress, Port);

                                    var writer = new StreamWriter(client.GetStream(), Encoding.UTF8);
                                    writer.Write(zplToSend);
                                    writer.Flush();
                                    writer.Write(PrintImage);
                                    writer.Close();
                                    client.Close();
                                }
                                catch (Exception ex)
                                {
                                    // Catch Exception
                                }
                            }
                        }
                    }
                }
            }

    private static ushort Calc(byte[] data)
    {
        ushort wCrc = 0;

        for (var i = 0; i < data.Length; i++)
        {
            wCrc ^= (ushort)(data[i] << 8);

            for (var j = 0; j < 8; j++)
            {
                if ((wCrc & 0x8000) != 0)
                {
                    wCrc = (ushort)((wCrc << 1) ^ 0x1021);
                }
                else
                {
                    wCrc <<= 1;
                }
            }
        }

        return wCrc;
    }
  • a=正在使用的介质接受值:N=连续介质Y=非连续介质网感应d,e W=非连续介质网感应d,e M=非连续介质标记感应a=校准期间自动检测介质类型d,f V=连续介质,可变长度g默认值:必须输入值或忽略命令
  • b=黑色标记偏移量(以点为单位)。这设置了介质标记相对于文档间分离点的预期位置。如果设置为0,则介质标记预计位于分离点(即穿孔、切割点等)所有值均以点列出。除非a参数设置为M,否则将忽略此参数。如果缺少此参数,则使用默认值。接受值:-仅直接热敏打印机为80到283-600 dpi打印机为240到566-KR403打印机为75到283-所有其他打印机为120到283默认值:0
~DY 下载对象说明~DY命令可将任何支持中的图形对象或字体下载到打印机