C#打印機操作類

f627 9年前發布 | 1K 次閱讀 C#

    using System;
using System.Collections.Generic;
using System.Text;

namespace MacPrinter  
{  
    public class ZPL_Command  
    {  

        /// (^EF)<summary>  
        /// 清除設定 (已包含起始結束命令)  
        /// </summary>  
        /// <returns></returns>  
        public string _CmdEraseSetup()  
        {  
            string st = "^XA^EF^FS^XZ";  
            return st.ToUpper();  
        }  

        /// <summary>  
        ///(^XA) ZPL命令開始  
        /// </summary>  
        /// <returns></returns>  
        public string _CmdStart()  
        {  
            return "^XA".ToUpper();  
        }  

        /// <summary>  
        ///(^XZ)  ZPL命令結尾  
        /// </summary>  
        /// <returns></returns>  
        public string _CmdEnd()  
        {  
            return "^XZ".ToUpper();  
        }  

        /// <summary>  
        /// (^FS)一個字段的結束(結束一行命令)  
        /// </summary>  
        /// <returns></returns>  
        public string _CmdLineEnd()  
        {  
            return "^FS".ToUpper();  
        }  

        /// <summary>  
        ///(^A)字體設定{^Af,o,h,w}  
        /// </summary>  
        /// <param name="DesiredFont">(f)需要選擇的字體默認為O(A-Z,1-9)</param>  
        /// <param name="FontOrientation">(o)字體是否旋轉默認N(R旋轉90°,I旋轉180°,B旋轉270°,)</param>  
        /// <param name="FontHeight">(h)設定字體高度以點計算默認為15(10-1500)</param>  
        /// <param name="FontWidth">(w)設定字體寬度以點計算默認為12(10-1500)</param>  
        /// <returns></returns>  
        public string _SetFont(string DesiredFont, string FontOrientation, int FontHeight, int FontWidth)  
        {  
            string _a = string.Format("^A{0}{1},{2},{3}", DesiredFont, FontOrientation, FontHeight, FontWidth);  
            return _a.ToUpper();  
        }  

        /// <summary>  
        /// (^A)字體設定{^Af,o,h,w}  
        /// </summary>  
        /// <param name="DesiredFont">(f)需要選擇的字體默認為O(A-Z,1-9)</param>  
        /// <param name="FontHeight">(h)設定字體高度以點計算默認為15(10-1500)</param>  
        /// <param name="FontWidth">(w)設定字體寬度以點計算默認為12(10-1500)</param>  
        /// <returns></returns>  
        public string _SetFont(string DesiredFont, int FontHeight, int FontWidth)  
        {  
            return this._SetFont(DesiredFont, "N", FontHeight, FontWidth);  
        }  

        /// <summary>  
        /// (^A@)調用字體名字設定字體{^A@o,h,w,n}  
        /// </summary>  
        /// <param name="FontOrientation">字體是否旋轉默認N(R旋轉90°,I旋轉180°,B旋轉270°,)</param>  
        /// <param name="FontHeight">設定字體高度以點計算默認為15(10-1500)</param>  
        /// <param name="FontWidth">設定字體寬度以點計算默認為12(10-1500)</param>  
        /// <param name="FontName">Font Name(Cyrillic.FNT)</param>  
        /// <returns></returns>  
        public string _SetFont(string FontOrientation, int FontHeight, int FontWidth, string FontName)  
        {  
            return string.Format("^A@{0},{1},{2},{3}", FontOrientation, FontHeight, FontWidth, FontName);  
        }  

        /// <summary>  
        /// (^B1o,e,h,f,g)  
        /// </summary>  
        /// <returns></returns>  
        public string _SetCode11()  
        {  
            return "";  
        }  

        /// <summary>  
        /// (^B3)Code39碼(^B3o,e,h,f,g)  
        /// </summary>  
        /// <param name="Orientation">Orientation:  
        ///Default value: Current ^FW setting  
        ///Other values:  
        ///N = Normal;  
        ///R = Rotated, 90 degrees clockwise;  
        ///I = Inverted, 180 degrees;  
        ///B = Read from Bottom Up, 270 degrees;</param>  
        /// <param name="e">Mod-43 Check Digit:  
        ///Default value: N = No;  
        ///Other value: Y = Yes</param>  
        /// <param name="Height">Bar Code Height:  
        /// Default value: Value set by ^BY ;  
        ///Other values: 1 dot to 9999 dots  
        /// </param>  
        /// <param name="f">Print Interpretation Line  
        ///Default value: Y = Yes;  
        ///Other value: N = No</param>  
        /// <param name="g">Print Interpretation Line Above Code  
        ///Default value: N = No ;  
        ///Other value: Y = Yes</param>  
        /// <returns></returns>  
        public string _SetCode39(string Orientation, string e, int Height, string f, string g)  
        {  
            return string.Format("^B3{0},{1},{2},{3},{4}", Orientation, e, Height, f, g).ToUpper();  
        }  

        /// <summary>  
        /// (^B4)Code49碼(^B4o,h,f,m)  
        /// </summary>  
        /// <param name="Orientation">  
        /// Orientation  
        ///Default value: Current ^FW value  
        ///(^FW defaults to N = Normal at power-up);  
        ///Other values:  
        ///N = Normal;  
        ///R = Rotated, 90 degrees clockwise;  
        ///I = Inverted, 180 degrees;  
        ///B = Read from Bottom Up, 270 degrees;</param>  
        /// <param name="Height">Height Multiplier of Individual Rows  
        ///Defined: This number, multiplied by the module,;  
        ///equals the height of the individual rows in dots.;  
        ///Default value: Value set by ^BY;  
        ///Other values: 1 to height of label.;  
        ///NOTE: 1 is not a recommended value.</param>  
        /// <param name="f">Print Interpretation Line  
        ///Default value: N = No line printed.  
        ///Other values:  
        ///A = Print interpretation line above code.;  
        ///B = Print interpretation line below code.</param>  
        /// <param name="m">Starting Mode  
        ///Default value: A = Automatic Mode. Printer determines  
        ///starting mode by analyzing field data.;  
        ///Other values:  
        ///0 = Regular Alphanumeric Mode;  
        ///1 = Multiple Read Alphanumeric;  
        ///2 = Regular Numeric Mode;  
        ///3 = Group Alphanumeric Mode;  
        ///4 = Regular Alphanumeric Shift 1;  
        ///5 = Regular Alphanumeric Shift 2;</param>  
        /// <returns></returns>  
        public string _SetCode49(string Orientation, int Height, string f, string m)  
        {  
            return string.Format("^B4{0},{1},{2},{3}", Orientation, Height, f, m).ToUpper();  

        }  

        /// <summary>  
        /// (^B7)PDF417 Bar Code(^B7o,h,s,c,r,t)  
        /// </summary>  
        /// <param name="o">Orientation Default value: Current ^FW value  
        ///  
        ///(^FW defaults to N = Normal at power-up);  
        ///Other values:  
        ///N = Normal;  
        ///R = Rotated, 90 degrees clockwise;  
        ///I = Inverted, 180 degrees;  
        ///B = Read from Bottom Up, 270 degrees;</param>  
        /// <param name="h">Bar Code Height for Individual Rows  
        ///(This number, multiplied by the module, equals the  
        ///height of the individual rows in dots.)  
        ///Default value: Value set by ^BY;  
        ///Other values: 1 dot to height of label.;  
        ///NOTE: 1 is not a recommended value.</param>  
        /// <param name="s">Security Level  
        ///Determines the number of error detection and correction  
        ///code words to be generated for the symbol.  
        ///Default level provides only error detection (no correction).  
        ///Increasing the security level adds increasing  
        ///levels of error correction. (Increases symbol size.)  
        ///Default value: 0 = Error detection only;  
        ///Other values: 1 to 8.;  
        ///Error detection plus correction.</param>  
        /// <param name="c" >Number of Data Columns to Encode  
        ///User can specify number of codeword columns giving  
        ///control over the width of the symbol.;  
        ///Default value: 1:2 row/column aspect ratio.;  
        ///Other values: 1 to 30;</param>  
        /// <param name="r">Number of Rows to Encode  
        ///User can specify number of symbol rows giving control  
        ///over the height of the symbol.;  
        ///Default value: 1:2 row/column aspect ratio.;  
        ///Other values: 3 to 90;;  
        ///Example: With no row or column values entered, 72  
        ///codewords would be encoded into a symbol of 6 columns  
        ///and 12 rows. (Depending on codewords, aspect ratio  
        ///will not always be exact.)</param>  
        /// <param name="t">Truncate Right Row Indicators and Stop Pattern  
        ///Default value: N = No truncation  
        ///Print right row indicators and stop pattern.  
        ///Other value: Y = Yes perform truncation.</param>  
        /// <returns></returns>  
        public string _SetCodeBDF417(string o, int h, int s, int c, int r, string t)  
        {  
            return string.Format("^B7{0},{1},{2},{3},{4},{5}", o, h, s, c, r, t).ToUpper();  
        }  

        //  
        //  
        /// <summary>  
        /// (^B8)EAN-8 Bar Code(^B8o,h,f,g)  
        /// </summary>  
        /// <param name="o">Orientation  
        ///Default value: Current ^FW value  
        ///(^FW defaults to N = Normal at power-up);  
        ///Other values:  
        ///N = Normal;  
        ///R = Rotated, 90 degrees clockwise;  
        ///I = Inverted, 180 degrees;  
        ///B = Read from Bottom Up, 270 degrees;</param>  
        /// <param name="h">Bar Code Height  
        ///Default value: Value set by ^BY;  
        ///Other values: 1 dot to 9999 dots</param>  
        /// <param name="f">Print Interpretation Line  
        ///Default value: Y = Yes;  
        ///Other value: N = No</param>  
        /// <param name="g">Print Interpretation Line Above Code  
        ///Default value: N = No;  
        ///Other value: Y = Yes</param>  
        /// <returns></returns>  
        public string _SetCodeEAN8(string o, int h, string f, string g)  
        {  
            return string.Format("^B8{0},{1},{2},{3}", o, h, f, g).ToUpper();  
        }  

        /// <summary>  
        /// (^B9)UPC-E Bar Code(^B9o,h,f,g,e)  
        /// </summary>  
        /// <param name="o">Orientation  
        ///Default value: Current ^FW setting;  
        ///Other values:  
        ///N = Normal;  
        ///R = Rotated, 90 degrees clockwise;  
        ///I = Inverted, 180 degrees;  
        ///B = Read from Bottom Up, 270 degrees</param>  
        /// <param name="h">Bar Code Height  
        ///Default value: Value set by ^BY;  
        ///Other values: 1 dot to 9999 dots</param>  
        /// <param name="f">Print Interpretation Line  
        ///Default value: Y = Yes;  
        ///Other value: N = No</param>  
        /// <param name="g">Print Interpretation Line Above Code  
        ///Default value: N = No;  
        ///Other value: Y = Yes</param>  
        /// <param name="e">Print Check Digit  
        ///Default value: Y = Yes,;  
        ///Other value: N = No</param>  
        /// <returns></returns>  
        public string _SetCodeUPC_E(string o, int h, string f, string g, string e)  
        {  
            return string.Format("^B9{0},{1},{2},{3},{4}", o, h, f, g, e).ToUpper();  
        }  

        /// <summary>  
        /// (^BA)Code 93 Bar Code(^BAo,h,f,g,e)  
        /// </summary>  
        /// <param name="o">Orientation  
        ///Default value: Current ^FW setting;  
        ///Other values:  
        ///N = Normal;  
        ///R = Rotated, 90 degrees clockwise;  
        ///I = Inverted, 180 degrees;  
        ///B = Read from Bottom Up, 270 degrees</param>  
        /// <param name="h">Bar Code Height  
        ///Default value: Value set by ^BY;  
        ///Other values: 1 dot to 9999 dots</param>  
        /// <param name="f">Print Interpretation Line  
        ///Default value: Y = Yes;  
        ///Other value: N = No</param>  
        /// <param name="g">Print Interpretation Line Above Code  
        ///Default value: N = No;  
        ///Other value: Y = Yes</param>  
        /// <param name="e">Print Check Digit  
        ///Default value: Y = Yes,;  
        ///Other value: N = No</param>  
        /// <returns></returns>  
        public string _SetCode93(string o, int h, string f, string g, string e)  
        {  
            return string.Format("^BA{0},{1},{2},{3},{4}", o, h, f, g, e).ToUpper();  
        }  

        /// <summary>  
        /// (^BC)Code 128 Bar Code(Subsets A, B, and C)(^BCo,h,f,g,e,m)  
        /// </summary>  
        /// <param name="o">Orientation  
        ///Default value: Current ^FW setting;  
        ///Other values:  
        ///N = Normal;  
        ///R = Rotated, 90 degrees clockwise;  
        ///I = Inverted, 180 degrees;  
        ///B = Read from Bottom Up, 270 degrees</param>  
        /// <param name="h">Bar Code Height  
        ///Default value: Value set by ^BY;  
        ///Other values: 1 dot to 9999 dots</param>  
        /// <param name="f">Print Interpretation Line  
        ///Default value: Y = Yes  
        ///Other value: N = No</param>  
        /// <param name="g">Print Interpretation Line Above Code  
        ///Default value: N = No;  
        ///Other value: Y = Yes</param>  
        /// <param name="e">UCC Check Digit  
        ///Default value: N = No;;  
        ///Other value: Y = Yes</param>  
        /// <param name="m">Mode  
        ///Default value: N = No mode selected;;  
        ///Other value: U = UCC Case Mode;;  
        ///(^FD or ^SN statement must contain 19  
        ///numeric digits (it can also contain valid alpha  
        ///characters). Subset C using FNC1 values is  
        ///automatically selected.</param>  
        /// <returns></returns>  
        public string _SetCode128(string o, int h, string f, string g, string e, string m)  
        {  
            return string.Format("^BC{0},{1},{2},{3},{4},{5}", o, h, f, g, e, m);  
        }  

        /// <summary>  
        /// (^BC)Code 128 Bar Code(Subsets A, B, and C)(^BCo,h,f,g,e,m)  
        /// </summary>  
        /// <param name="o">Orientation  
        ///Default value: Current ^FW setting;  
        ///Other values:  
        ///N = Normal;  
        ///R = Rotated, 90 degrees clockwise;  
        ///I = Inverted, 180 degrees;  
        ///B = Read from Bottom Up, 270 degrees</param>  
        /// <param name="h">Bar Code Height  
        ///Default value: Value set by ^BY;  
        ///Other values: 1 dot to 9999 dots</param>  
        /// <param name="f">Print Interpretation Line  
        ///Default value: Y = Yes  
        ///Other value: N = No</param>  
        /// <param name="g">Print Interpretation Line Above Code  
        ///Default value: N = No;  
        ///Other value: Y = Yes</param>  
        /// <param name="e">UCC Check Digit  
        ///Default value: N = No;;  
        ///Other value: Y = Yes</param>  
        /// <returns></returns>  
        public string _SetCode128(string o, int h, string f, string g, string e)  
        {  
            return string.Format("^BC{0},{1},{2},{3},{4}", o, h, f, g, e);  

        }  

        /// <summary>  
        /// (^BY)  Change Bar Code Default Parameters(條碼字段默認參數設置,用來改變窄元素(窄條或窄空)的寬度模塊)  
        /// </summary>  
        /// <param name="w">模塊(窄條)寬 (開機初始化值:2點 可接受的數值:1-10點) Module (Narrow Bar) Width (Initial power -up value: 2 dots ,Acceptable values: 1-10 dots)</param>  
        /// <param name="r">寬條與窄條的比例 (開機初始化值:3.0 可接受的數值:2.0到3.0,0.1的增量(對固定比例的條碼無效))Wide Bar to Narrow Bar Width Ratio(Initial power-up ratio: 3.0 ,Acceptable ratios: From 2.0 to 3.0 in .1 increments.)</param>  
        /// <param name="h">條碼高度 開機初始化值:10點可接受的數值:1點到標簽高度(Height of Bars(Initial Power-up value: 10 dots, Acceptable values: 1 dot to height of label)</param>  
        /// <returns></returns>  
        public string _changeBarCodeDefault(int w, int r, int h)  
        {  
            string _by = string.Format("^BY{0},{1},{2}", w, r, h);  
            return _by.ToUpper();  
        }  

        /// <summary>  
        /// (^BY)  Change Bar Code Default Parameters(條碼字段默認參數設置,用來改變窄元素(窄條或窄空)的寬度模塊)  
        /// </summary>  
        /// <param name="w">模塊(窄條)寬 (開機初始化值:2點 可接受的數值:1-10點) Module (Narrow Bar) Width (Initial power -up value: 2 dots ,Acceptable values: 1-10 dots)</param>  
        /// <param name="r">寬條與窄條的比例 (開機初始化值:3.0 可接受的數值:2.0到3.0,0.1的增量(對固定比例的條碼無效))Wide Bar to Narrow Bar Width Ratio(Initial power-up ratio: 3.0 ,Acceptable ratios: From 2.0 to 3.0 in .1 increments.)</param>  
        /// <returns></returns>  
        public string _changeBarCodeDefault(int w, string r)  
        {  
            string _by = string.Format("^BY{0},{1}", w, r);  
            return _by.ToUpper();  
        }  

        /// <summary>  
        /// (^LR) Reverse Print All Fields  
        /// </summary>  
        /// <param name="reverse">(y)是否以黑底白字打印{Y or N}</param>  
        /// <returns></returns>  
        public string _SetLableReverse(string reverse)  
        {  
            return string.Format("^LR{0}", reverse);  
        }  

        /// <summary>  
        /// (^LL)設定Lable長度  
        /// </summary>  
        /// <param name="iLength">Number of Dots Along Y-Axis{Default value:1225 for Stripe ; 1244 for Xi printers}</param>  
        /// <returns></returns>  
        public string _SetLableLength(int iLength)  
        {  
            return string.Format("^LL{0}", iLength);  
        }  

        /// <summary>  
        /// (^LS)移動Lable  
        /// </summary>  
        /// <param name="shiftValue">Shift Left Value of dots(Acceptable values: 0 to 9999 dots)</param>  
        /// <returns></returns>  
        public string _SetLableShift(int shiftValue)  
        {  
            return string.Format("^LS{0}", shiftValue);  
        }  

        /// <summary>  
        /// (^LH) 設置Lable起點以及頂端距離(以點計算),如超出范圍將拋出錯誤  
        /// </summary>  
        /// <param name="x">起點的X位置</param>  
        /// <param name="y">起點的Y位置</param>  
        /// <param name="width">實際Lable紙張的寬度(以點計算)</param>  
        /// <param name="height">實際Lable紙張的寬度(以點計算)</param>  
        /// <returns></returns>  
        public string _SetLableHomeAndTop(int x, int y, int width, int height)  
        {  
            if (y < width && x < height)  
            {  
                string _lh_lt = string.Format("^LH{0},{1}^LT{1}", x, y);  

                return _lh_lt.ToUpper();  
            }  
            else  
            {  
                throw new Exception("超出范圍");  
            }  

        }  

        /// <summary>  
        /// (^LH)設定Lable的起點  
        /// </summary>  
        /// <param name="x">起點的X位置</param>  
        /// <param name="y">起點的Y位置</param>  
        /// <param name="width">實際Lable紙張的寬度(以點計算)</param>  
        /// <param name="height">實際Lable紙張的寬度(以點計算)</param>  
        /// <returns></returns>  
        public string _SetLableHome(int x, int y)  
        {  
            return string.Format("^LH{0},{1}", x, y);  
        }  

        /// <summary>  
        ///(^LT) Lable距離頂端邊的距離(以點計算)  
        /// </summary>  
        /// <param name="iTop"></param>  
        /// <returns></returns>  
        public string _SetLableTop(int iTop)  
        {  
            return string.Format("^LT{0}", iTop);  
        }  

        /// <summary>  
        /// (^DF)下載字體  
        /// </summary>  
        /// <param name="FileName">字體文件名稱包含擴展名(STOREFMT.ZPL)</param>  
        /// <returns></returns>  
        public string _SetDownLoadFont(string FileName)  
        {  
            string _df = string.Format("^DF{0}", FileName);  
            return _df.ToUpper();  
        }  

        /// <summary>  
        ///(^MD) 設定打印字體容度  
        /// </summary>  
        /// <param name="darknessVale">容度值默認15(-30至+30)</param>  
        /// <returns></returns>  
        public string _SetMediaDarkness(int darknessVale)  
        {  
            string _md = string.Format("^MD{0}", darknessVale);  
            return _md.ToUpper();  
        }  

        /// <summary>  
        /// (^ML) Maximum Label Length  
        /// </summary>  
        /// <param name="iLength">Maximum Label Length in Dot Rows(Default value:Last permanently saved value)</param>  
        /// <returns></returns>  
        public string _SetMaxLableLength(int iLength)  
        {  
            return string.Format("^ML{0}", iLength);  
        }  

        /// <summary>  
        /// (^MM)Print Mode  
        /// </summary>  
        /// <param name="strDesiredMode">  
        /// Desired Mode  
        /// Default value:  
        ///T = Tear Off ;   
        ///Other Values:  
        ///P = Peel Off (not available on S-300 printers)  
        ///R = Rewind (Instruction ignored if parameter  
        ///missing or incorrect.)  
        ///A = Applicator  
        /// </param>  
        /// <param name="strPrePeelSelect">Pre-Peel Select(Y or N)</param>  
        /// <returns></returns>  
        public string _SetPrintMode(string strDesiredMode, string strPrePeelSelect)  
        {  
            return string.Format("^MM{0},{1}", strDesiredMode, strPrePeelSelect);  
        }  

        /// <summary>  
        /// (^MN) Set Media Tracking  
        /// </summary>  
        /// <param name="strTrack">Media Being Used  
        ///N = Continuous Media ;  
        ///Y = Non-Continuous Media Web Sensing</param>  
        /// <returns></returns>  
        public string _SetMedieTracking(string strTrack)  
        {  
            return string.Format("^MN{0}", strTrack);  
        }  

        /// <summary>  
        /// (^MU)Set Mode Units  
        /// </summary>  
        /// <param name="unitsType">units type  
        /// Default: D = Dots  
        ///I = Inches  
        ///M = Millimeters</param>  
        /// <returns></returns>  
        public string _SetModeUnits(string unitsType)  
        {  
            return string.Format("^MU{0}", unitsType);  
        }  


        /// <summary>  
        ///(^PR _^PW) 設定打印速度以及打印的寬度  
        /// </summary>  
        /// <param name="PrintSpeed">打印速度值默認3(A or 2 50.8 mm/sec,B or 3 76.2 mm/sec,C or 4 101.6 mm/sec,5 127 mm/sec,D or 6 152.4 mm/sec,E or 8 203.2 mm/sec.)</param>  
        /// <param name="SlewSpeed">Default value: Speed D(A or 2 50.8 mm/sec,B or 3 76.2 mm/sec,C or 4 101.6 mm/sec,5 127 mm/sec,D or 6 152.4 mm/sec,E or 8 203.2 mm/sec)</param>  
        /// <param name="BackfeedSpeed">Default value: Speed D(A or 2 50.8 mm/sec,B or 3 76.2 mm/sec,C or 4 101.6 mm/sec,5 127 mm/sec,D or 6 152.4 mm/sec,E or 8 203.2 mm/sec)</param>  
        /// <param name="PrintWidth">打印寬度(根據Lable紙而定)</param>  
        /// <returns></returns>  
        public string _SetPrintRateAndWidth(int PrintSpeed, int SlewSpeed, int BackfeedSpeed, int PrintWidth)  
        {  
            string _pr_pw = string.Format("^PR{0},{1},{2}^PW{3}", PrintSpeed, SlewSpeed, BackfeedSpeed, PrintWidth);  
            return _pr_pw.ToUpper();  
        }  

        /// <summary>  
        ///(^PR) 設定打印速度以及打印的寬度  
        /// </summary>  
        /// <param name="PrintSpeed">打印速度值默認3(A or 2 50.8 mm/sec,B or 3 76.2 mm/sec,C or 4 101.6 mm/sec,5 127 mm/sec,D or 6 152.4 mm/sec,E or 8 203.2 mm/sec.)</param>  
        /// <param name="SlewSpeed">Default value: Speed D(A or 2 50.8 mm/sec,B or 3 76.2 mm/sec,C or 4 101.6 mm/sec,5 127 mm/sec,D or 6 152.4 mm/sec,E or 8 203.2 mm/sec)</param>  
        /// <param name="BackfeedSpeed">Default value: Speed D(A or 2 50.8 mm/sec,B or 3 76.2 mm/sec,C or 4 101.6 mm/sec,5 127 mm/sec,D or 6 152.4 mm/sec,E or 8 203.2 mm/sec)</param>  
        /// <returns></returns>  
        public string _SetPrintRate(int PrintSpeed, int SlewSpeed, int BackfeedSpeed)  
        {  
            return string.Format("^PR{0},{1},{2}", PrintSpeed, SlewSpeed, BackfeedSpeed);  
        }  


        /// <summary>  
        /// (^PR)設置打印速度  
        /// </summary>  
        /// <param name="PrintSpeed">打印速度:  
        /// Print Speed  
        ///Default value: Speed A  
        ///Acceptable values :  
        ///A or 2 50.8 mm/sec. (2 inches/sec.)  
        ///B or 3 76.2 mm/sec. (3 inches/sec.)  
        ///C or 4 101.6 mm/sec. (4 inches/sec.)  
        ///5 127 mm/sec. (5 inches/sec.)  
        ///D or 6 152.4 mm/sec. (6 inches/sec.)  
        ///E or 8 203.2 mm/sec. (8 inches/sec.)  
        /// </param>  
        /// <returns></returns>  
        public string _SetPrintRate(int PrintSpeed)  
        {  
            return string.Format("^PR{0}", PrintSpeed);  
        }  

        /// <summary>  
        /// (^PW)設置打印范圍(寬度)  
        /// </summary>  
        /// <param name="printWidth">打印寬度</param>  
        /// <returns></returns>  
        public string _SetPrintWidth(int printWidth)  
        {  
            return string.Format("^PW{0}", printWidth);  
        }  

        /// <summary>  
        ///  (^PR_^PW) 設定打印速度以及打印的寬度  
        /// </summary>  
        /// <param name="PrintSpeed">打印速度值默認3(A or 2 50.8 mm/sec,B or 3 76.2 mm/sec,C or 4 101.6 mm/sec,5 127 mm/sec,D or 6 152.4 mm/sec,E or 8 203.2 mm/sec.)</param>  
        /// <param name="PrintWidth">打印寬度(根據Lable紙而定)</param>  
        /// <returns></returns>  
        public string _SetPrintRateAndWidth(int PrintSpeed, int PrintWidth)  
        {  
            return this._SetPrintRateAndWidth(PrintSpeed, 6, 6, PrintWidth);  
        }  

        /// <summary>  
        /// (^PR_^PW) 設定打印的寬度打印速度使用默認值  
        /// </summary>  
        /// <param name="PrintWidth"></param>  
        /// <returns></returns>  
        public string _SetPrintRateAndWidth(int PrintWidth)  
        {  
            return this._SetPrintRateAndWidth(3, 6, 6, PrintWidth);  
        }  

        /// <summary>  
        /// (^FO)設置字段的位置,相對于由^LH命令指定的標簽原點  
        /// </summary>  
        /// <param name="x">Number of Dots along X-axis(Default value: = 0,Acceptable values: 0 - 9999)</param>  
        /// <param name="y">Number of Dots along Y-axis(Default value: = 0,Acceptable values: 0 - 9999)</param>  
        /// <returns></returns>  
        public string _SetFieldOrigin(int x, int y)  
        {  
            string _fo = string.Format("^FO{0},{1}", x, y);  
            return _fo.ToUpper();  
        }  

        /// <summary>  
        /// Code 128 Bar Code (^BC)  
        /// </summary>  
        /// <param name="o">字體方向  //[N = 正常 (Normal), R = 順時針旋轉90度(Roated), I = 順時針旋轉180度(Inverted), B = 順時針旋轉270度 (Bottom)]</param>  
        /// <param name="h">條碼高度 // [默認值:由^BY設置 其他值:1到9999點]</param>  
        /// <param name="f">打印注釋行  //[ 默認值: Y = 打印(Yes)其他值:N = 不打印(No]</param>  
        /// <param name="g">將注釋行打印在條碼上方  //[ 默認值: N = 不打印在條碼上方其他值: Y = 打印在條碼上方]</param>  
        /// <param name="e"> 打印UCC校驗位  // 默認值:Y = 打印(Yes)其他值:N = 不打印(No)</param>  
        /// <param name="m">= 模式  //默認值:N = 不選擇模式, 其他值:U = UCC匹配模式></param>  
        /// <returns></returns>  
        public string _BCCode128(string o, int h, string f, string g, string e, string m)  
        {  
            string _bc = string.Format("^BC{0},{1},{2},{3},{4},{5}", o, h, f, g, e, m);  
            return _bc.ToUpper();  
        }  

        /// <summary>  
        /// Code 128 Bar Code(^BC)  
        /// </summary>  
        /// <param name="o">字體方向  //[N = 正常 (Normal), R = 順時針旋轉90度(Roated), I = 順時針旋轉180度(Inverted), B = 順時針旋轉270度 (Bottom)]</param>  
        /// <param name="h">條碼高度 // [默認值:由^BY設置 其他值:1到9999點]</param>  
        /// <param name="f">打印注釋行  //[ 默認值: Y = 打印(Yes)其他值:N = 不打印(No]</param>  
        /// <param name="g">將注釋行打印在條碼上方  //[ 默認值: N = 不打印在條碼上方其他值: Y = 打印在條碼上方]</param>  
        /// <param name="e"> 打印UCC校驗位  // 默認值:Y = 打印(Yes)其他值:N = 不打印(No)</param>  
        /// <returns></returns>  
        public string _BCCode128(string o, int h, string f, string g, string e)  
        {  
            return this._BCCode128(o, h, f, g, e, "N").ToUpper();  
        }  

        /// <summary>  
        /// (^FD) 字段數據  
        /// </summary>  
        /// <param name="data">打印的數據(字段數據串最多3072字符)</param>  
        /// <returns></returns>  
        public string _SetFieldData(string data)  
        {  
            string _fd = string.Format("^FD{0}", data);  
            return _fd;  
        }  

        /// <summary>  
        /// (^FH) 字段的十六進制表示(指令允許你在^FD語句里直接輸入任何十六進制值。^FH指令必須在每個^FD指令前才能用)在^FD語句里,十六進制標識必須在每個十六進制值前加入(_)。缺省的十六進制標識是下劃線(_)。這指令可以用在任何有數據段的指令里,(如^FD,^FV(段變量),和^SN(串行數據)  
        /// </summary>  
        /// <returns></returns>  
        public string _FieldHex()  
        {  
            return "^FH".ToUpper();  
        }  

        /// <summary>  
        ///  (^SN) 連續數據指令  
        /// </summary>  
        /// <param name="StartingValue">起始值</param>  
        /// <param name="IncrementValue">增加/減少值</param>  
        /// <param name="LeadingZeros">如需要加引導零. 缺省值:N=不 ;其它值:Y=是</param>  
        /// <returns></returns>  
        public string _SetSerializationData(string StartingValue, int IncrementValue, string LeadingZeros)  
        {  
            string _sn = string.Format("^SN{0},{1},{2}", StartingValue, IncrementValue, LeadingZeros.ToUpper());  
            return _sn;  
        }  

        /// <summary>  
        ///(^PQ) 打印總數  
        /// </summary>  
        /// <param name="q">數量(Total Quantity of Labels to Print)</param>  
        /// <returns></returns>  
        public string _SetPrintQueantity(int q)  
        {  
            string _pq = string.Format("^PQ{0}", q);  
            return _pq.ToUpper();  
        }  

        /// <summary>  
        /// (^PQ)打印總數  
        /// {Exemples: ^PQ50,10,1,Y:---- Print a total quantity of 50 labels with one replicate  
        ///of each serial number. Print the total quantity in groups of 10, but do  
        ///not pause after every group.}  
        /// </summary>  
        /// <param name="q">Total Quantity of Labels to Print  
        /// ;Default value: 1  
        ///;Acceptable values: 1 - 99,999,999</param>  
        /// <param name="p">Pause (?Group?) Count;  
        /// Default value: 0 = no pause  
        ///Acceptable values: 0 - 99,999,999 labels between pauses  
        /// </param>  
        /// <param name="r">Replicates of Each Serial Number;  
        /// Default value: 0 = no replicates  
        ///Acceptable values: 0 - 99,999,999 replicates  
        /// </param>  
        /// <param name="o">Override Pause Count;  
        /// Default value: N = No  
        ///Other value: Y = Yes  
        /// </param>  
        /// <returns></returns>  
        public string _SetPrintQueantity(int q, int p, int r, string o)  
        {  
            return string.Format("^PQ{0},{1},{2},{3}", q, p, r, o);  
        }  

        /// <summary>  
        /// (^PM)Print Mirror Image of Lable(  
        /// NOTE: The ^PM will remain active unless turned off by ^PMN  
        ///instruction or the printer is powered down.)  
        /// </summary>  
        /// <param name="a">Mirror Print Entire Label  
        ///Y = Yes  
        ///N = No {I.V.P. = N}</param>  
        /// <returns></returns>  
        public string _SetMirrorImageLable(string a)  
        {  
            return string.Format("^PM{0}", a);  
        }  

        /// <summary>  
        /// (^PO)Print Orientation  
        /// </summary>  
        /// <param name="a">a = Invert 180 Degrees  
        ///N = Normal {I.V.P. = N}  
        ///I = Invert</param>  
        /// <returns></returns>  
        public string _SetPrintOrientation(string a)  
        {  
            return string.Format("^PO{0}", a);  
        }  

        /// <summary>  
        /// (^GF)Graphic Field(圖片打印)  
        /// </summary>  
        /// <param name="CompressionType">  
        /// Default:ASCII  
        /// Value:  
        /// A = ACSII Hex:  
        /// This follows the conventional download format  
        /// used for all other download commands.  
        /// B = Binary:  
        /// The data sent to the printer after the ?c? parameter  
        /// is strictly binary.   
        /// C = Compression Binary :  
        /// The data sent after parameter ?c? is in a compressed  
        /// binary format. The data is compressed on  
        /// the host side using a compression algorithm supplied  
        /// by Zebra. The data is then decompressed  
        /// and placed directly in the bitmap.  
        /// </param>  
        /// <param name="BinaryByteCount">  
        /// Binary Byte Count  
        /// Default:Note-entire command is ignored when not specified  
        /// Value:Total number of bytes   
        /// Range:1 to 99999  
        /// </param>  
        /// <param name="GraphicFieldCount">  
        /// Graphic Field Count  
        /// </param>  
        /// <param name=";ByteperRow">  
        /// Bytes per Row  
        /// </param>  
        /// <param name="strData">  
        /// Default:None=must be specified  
        /// ASCII Hex Data:  
        /// </param>  
        /// <returns></returns>  
        public string _SetGraphicField(string CompressionType, string BinaryByteCount,  
            string GraphicFieldCount, string ByteperRow, string strData)  
        {  
            return string.Format("^GF{0},{1},{2},{3},{4}", CompressionType.ToUpper(), BinaryByteCount, GraphicFieldCount, ByteperRow, strData);  
        }  

        public string _SetFieldNumber(int i)  
        {  
            return string.Format("^FN{0}", i);  
        }  
        public string _SetRecallFormat(string FieldName)  
        {  
            return string.Format("^XF{0}", FieldName);  
        }  

        /// <summary>  
        ///(^FWr) Set Field Orientation  
        /// </summary>  
        /// <param name="Orig">Rotate Field  
        /// N = Normal {I.V.P. = N}  
        /// R = Rotated 90 degrees;  
        /// I = Inverted (180 degrees);  
        /// B = Bottom Up (270 degrees read from bottom up).  
        /// </param>  
        /// <returns></returns>  
        public string _SetFieldOrientation(string Orig)  
        {  
            return string.Format("^FW{0}", Orig);  
        }  

    }  
}  </pre> 


 本文由用戶 f627 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!