ZPL指令封裝


 public partial class ZplCommand
    {
        /// <summary>
        /// 構造函數
        /// </summary>
        public ZplCommand()
        {
        }

        /// <summary>
        /// 開始指令 ^XA
        /// </summary>
        /// <returns></returns>
        public string ZPL_Start()
        {
            return "^XA";
        }

        /// <summary>
        /// 結束指令
        /// </summary>
        /// <returns></returns>
        public string ZPL_End()
        {
            return "^XZ";
        }

        /// <summary>
        /// 設置打印紙張大小
        /// ^PW{0}:打印寬度,如果寬度較小,則會出現打印不全的效果
        /// ^LL{0} 標簽長度
        /// </summary>
        /// <param name="Width">打印紙的寬度</param>
        /// <param name="Height">打印紙長度</param>
        /// <returns></returns>
        public string ZPL_PageSize(int Width,int Height)
        {
            return string.Format("^PW{0}^LL{1}", Width, Height);
        }

        /// <summary>
        /// 設置打印紙邊距
        /// ^LH{0},{1}
        /// </summary>
        /// <param name="Left">左邊距</param>
        /// <param name="Top">右邊距</param>
        /// <returns></returns>
        public string ZPL_MarginBorder(int Left, int Top)
        {
            return string.Format("^LH{0},{1}", Left, Top);
        }

        /// <summary>
        /// 切刀指令
        /// ^MM  C = 切刀 Y = 非連續紙
        /// </summary>
        /// <returns></returns>
        public string ZPL_Cutter()
        {
            return "^MMC,Y";
        }

        /// <summary>
        /// 打印英文文本
        /// </summary>
        /// <param name="Content">打印文本內容</param>
        /// <param name="FontName">打印字體</param>
        /// <param name="Left">左邊距</param>
        /// <param name="Top">頂邊距</param>
        /// <param name="Orient">旋轉角度 N = 正常 (Normal) R = 順時針旋轉90度(Roated) I = 順時針旋轉180度(Inverted) B = 順時針旋轉270度 (Bottom)</param>
        /// <param name="Height">字體高度</param>
        /// <param name="Width">字體寬度</param>
        /// <returns></returns>
        public string ZPL_EnText(string Content, string FontName, int Left, int Top, string Orient, int Height, int Width)
        {
            string command = "^FO{1},{2}^A" + FontName + "{3},{4},{5}^FD{0}^FS";
            return string.Format(command, Content, Left, Top, Orient, Height, Width);
        }

        /// <summary>  
        /// 中文處理,返回ZPL命令  
        /// </summary>  
        /// <param name="ChineseText">待轉變中文內容</param>  
        /// <param name="FontName">字體名稱</param>  
        /// <param name="startX">X坐標</param>  
        /// <param name="startY">Y坐標</param>  
        /// <param name="Orient">旋轉角度0,90,180,270</param>  
        /// <param name="Height">字體高度</param>  
        /// <param name="Width">字體寬度,通常是0</param>  
        /// <param name="IsBold">1 變粗,0 正常</param>  
        /// <param name="IsItalic">1 斜體,0 正常</param>  
        /// <returns></returns>  
        public string ZPL_CHText(string ChineseText, string FontName, int startX, int startY, int Orient, int Height, int Width, int IsBold, int IsItalic)
        {
            StringBuilder sResult = new StringBuilder();
            StringBuilder hexbuf = new StringBuilder(21 * 1024);
            int count = ZplCommand.GETFONTHEX(ChineseText, FontName, Orient, Height, Width, IsBold, IsItalic, hexbuf);
            if (count > 0)
            {
                string sEnd = "^FO" + startX.ToString() + "," + startY.ToString() + "^XGOUTSTR" + ",1,2^FS ";
                sResult.AppendLine(hexbuf.ToString().Replace("OUTSTR01", "OUTSTR") + sEnd);
            }
            return sResult.ToString();
        }

        /// <summary>  
        /// 中文處理  
        /// </summary>  
        /// <param name="ChineseText">待轉變中文內容</param>  
        /// <param name="FontName">字體名稱</param>  
        /// <param name="Orient">旋轉角度0,90,180,270</param>  
        /// <param name="Height">字體高度</param>  
        /// <param name="Width">字體寬度,通常是0</param>  
        /// <param name="IsBold">1 變粗,0 正常</param>  
        /// <param name="IsItalic">1 斜體,0 正常</param>  
        /// <param name="ReturnPicData">返回的圖片字符</param>  
        /// <returns></returns>  
        [DllImport("fnthex32.dll")]
        public static extern int GETFONTHEX(string ChineseText,string FontName,int Orient,int Height,int Width,int IsBold,int IsItalic,StringBuilder ReturnPicData);

        /// <summary>  
        /// 中文處理  
        /// </summary>  
        /// <param name="ChineseText">待轉變中文內容</param>  
        /// <param name="FontName">字體名稱</param>  
        /// <param name="FileName">返回的圖片字符重命</param>  
        /// <param name="Orient">旋轉角度0,90,180,270</param>  
        /// <param name="Height">字體高度</param>  
        /// <param name="Width">字體寬度,通常是0</param>  
        /// <param name="IsBold">1 變粗,0 正常</param>  
        /// <param name="IsItalic">1 斜體,0 正常</param>  
        /// <param name="ReturnPicData">返回的圖片字符</param>  
        /// <returns></returns>  
        [DllImport("fnthex32.dll")]
        public static extern int GETFONTHEX(string ChineseText,string FontName,string FileName,int Orient,int Height,int Width,int IsBold,int IsItalic,StringBuilder ReturnPicData);

        /// <summary>
        /// 打印Code128條碼
        /// </summary>
        /// <param name="Left">左邊距</param>
        /// <param name="Top">頂邊距</param>
        /// <param name="Width">模塊(窄條)寬 初始化值:2點 可接受的數值:1-10點</param>
        /// <param name="Ratio">寬條與窄條的比例 初始化值:3.0 可接受的數值:2.0到3.0,0.1的增量(對固定比例的條碼無效)</param>
        /// <param name="Height">條碼高度開機初始化值:10點 可接受的數值:1點到標簽高度。</param>
        /// <param name="Content">條碼內容 條碼只能是英文字符</param>
        /// <returns></returns>
        public string ZPL_Barcode128(int Left, int Top, int Width, int Ratio, int Height, string Content)
        {
            string command = "^FO{0},{1}^BY{2},{3}^BCN,{4},N,N^FD{5}^FS";
            return string.Format(command, Left, Top, Width, Ratio, Height, Content);
        }

        /// <summary>
        /// 打印二維碼
        /// </summary>
        /// <param name="Left">左邊距</param>
        /// <param name="Top">頂邊距</param>
        /// <param name="Conent">二維碼內容</param>
        /// <returns></returns>
        public string ZPL_QRCode(int Left, int Top,string Conent)
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("^FO{0},{1}", Left, Top);
            sb.Append("^BQ,2,7");
            sb.AppendFormat("^FDLA,{0}^FS", Conent);
            return sb.ToString();
        }


        public string ZPL_Image(int Left, int Top, int cl, int bch, string path)
        {
            return string.Empty;
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM