using System.Runtime.InteropServices; using System.Text; namespace EC.AutoWeightServer.IfManager.Pos { public class PosSDK { #region Custom public struct PosParam { private string lpName; private string portType; private bool bFile; private string path; } #endregion Custom #region Const // pritner connect way public const int POS_PT_COM = 1000; public const int POS_PT_LPT = 1001; public const int POS_PT_USB = 1002; public const int POS_PT_NET = 1003; // printer state public const int POS_PS_NORMAL = 3001; public const int POS_PS_PAPEROUT = 3002; public const int POS_PS_HEAT = 3003; public const int POS_PS_DOOROPEN = 3004; public const int POS_PS_BUFFEROUT = 3005; public const int POS_PS_CUT = 3006; public const int POS_PS_DRAWERHIGH = 3007; public const int POS_ES_PAPERENDING = 6; //纸将尽 public const int POS_ES_DRAWERHIGH = 5; //钱箱高电平 public const int POS_ES_CUT = 4; //切刀未复位 public const int POS_ES_DOOROPEN = 3; //纸仓门开 public const int POS_ES_HEAT = 2; //机头过热 public const int POS_ES_PAPEROUT = 1; //打印机缺纸 public const int POS_ES_SUCCESS = 0; //成功/发送成功/状态正常/打印完成 public const int POS_ES_INVALIDPARA = -1; //参数错误 public const int POS_ES_WRITEFAIL = -2; //写失败 public const int POS_ES_READFAIL = -3; //读失败 public const int POS_ES_NONMONOCHROMEBITMAP = -4; //非单色位图 public const int POS_ES_OVERTIME = -5; //超时/写超时/读超时/打印未完成 public const int POS_ES_FILEOPENERROR = -6; //文件/图片打开失败 public const int POS_ES_OTHERERRORS = -100; //其他原因导致的错误 // barcode type public const int POS_BT_UPCA = 4001; public const int POS_BT_UPCE = 4002; public const int POS_BT_JAN13 = 4003; public const int POS_BT_JAN8 = 4004; public const int POS_BT_CODE39 = 4005; public const int POS_BT_ITF = 4006; public const int POS_BT_CODABAR = 4007; public const int POS_BT_CODE93 = 4073; public const int POS_BT_CODE128 = 4074; // 2D barcode type public const int POS_BT_PDF417 = 4100; public const int POS_BT_DATAMATRIX = 4101; public const int POS_BT_QRCODE = 4102; // HRI type public const int POS_HT_NONE = 4011; public const int POS_HT_UP = 4012; public const int POS_HT_DOWN = 4013; public const int POS_HT_BOTH = 4014; //TSPL public const int TSPL_PRINTER_STATUS_OUTPAPER = 1;//打印机缺纸 public const int TSPL_PRINTER_STATUS_WORK = 2; //打印中 public const int TSPL_PRINTER_STATUS_ENCLOSURENOCLOSE = 3; //机壳未关 public const int TSPL_PRINTER_STATUS_ERROR = 4; //打印机内部错误 public const int TSPL_PARAM_LESS_EQUAL_ZERO = -2; //参数小于等于0 public const int TSPL_PARAM_GREAT_RANGE = -3; //参数大于指定范围 public const int TSPL_SUCCESS = 0; public const int TSPL_IDERROR = -1; #endregion Const #region Method [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Port_OpenA")] public static extern int POS_Port_OpenA(string lpName, int iPort, bool bFile, string path); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Output_PrintstringA")] public static extern int POS_Output_PrintstringA(int printID, string strBuff); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Output_PrintData")] public static extern int POS_Output_PrintData(int printID, byte[] strBuff, int ilen); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Port_Close")] public static extern int POS_Port_Close(int printID); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_CutPaper")] public static extern int POS_Control_CutPaper(int printID, int type, int len); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_CashDraw")] public static extern int POS_Control_CashDraw(int printID, int iNum, int time1, int time2); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Status_QueryStatus")] public static extern int POS_Status_QueryStatus(int printID); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Status_RTQueryStatus")] public static extern int POS_Status_RTQueryStatus(int printID); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Status_RTQueryTypeStatus")] public static extern int POS_Status_RTQueryTypeStatus(int printID, int n); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Output_DownloadBmpToFlashA")] public static extern int POS_Output_DownloadBmpToFlashA(int printID, string strPath); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_DownloadBmpToFlashNumA")] public static extern int POS_Control_DownloadBmpToFlashNumA(int printID, string strPath, int num); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Output_PrintBmpDirectA")] public static extern int POS_Output_PrintBmpDirectA(int printID, string strPath); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Output_PrintFontStringA")] public static extern int POS_Output_PrintFontStringA(int printID, int iFont, int iThick, int iWidth, int iHeight, int iUnderLine, string lpString); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Input_PrinterId")] public static extern int POS_Input_PrinterId(int printID, StringBuilder Buff); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_BlackMark")] public static extern int POS_Control_BlackMark(int printID); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_SetPrintPosition")] public static extern int POS_Control_SetPrintPosition(int printID, int iLeft, int iWidth); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Status_QueryTaskStatus")] public static extern int POS_Status_QueryTaskStatus(int printID, int second); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Output_PrintFlashBmp")] public static extern int POS_Output_PrintFlashBmp(int printID, int n); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Output_PrintOneDimensionalBarcodeA")] public static extern int POS_Output_PrintOneDimensionalBarcodeA(int printID, int iType, int iWidth, int iHeight, int hri, string lpstring); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Output_PrintTwoDimensionalBarcodeA")] public static extern int POS_Output_PrintTwoDimensionalBarcodeA(int printID, int iType, int parameter1, int parameter2, int parameter3, string lpstring); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Output_DownloadRamBmpA")] public static extern int POS_Output_DownloadRamBmpA(int printID, string lpFilePath); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Output_PrintRamBmp")] public static extern int POS_Output_PrintRamBmp(int printID, int n); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_PrintTestpage")] public static extern int POS_Control_PrintTestpage(int printID); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "Color24_GrayBW")] public static extern int Color24_GrayBW(string szSourceFile, string szTargetFile); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_SetRotaryPrint")] public static extern int POS_Control_SetRotaryPrint(int printID, int n); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_OppositeColor")] public static extern int POS_Control_OppositeColor(int printID, bool bOppsite); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_AlignType")] public static extern int POS_Control_SetRotaryPrint(int printID, bool iAlignType); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Output_SendLocalFileA")] public static extern int POS_Output_SendLocalFileA(int printID, string lpFilePath); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_ReSet")] public static extern int POS_Control_ReSet(int printID); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_SetPrintFontC")] public static extern int POS_Control_SetPrintFontC(int printID, bool iDoubleWidth, bool iDoubleHeight, bool iUnderLine); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_SetInvertedPrint")] public static extern int POS_Control_SetInvertedPrint(int printID, int n); [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "POS_Control_AlignType")] public static extern int POS_Control_AlignType(int printID, int iAlignType); //--------------ztongli.20170123-------------- //设置页宽页高 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "PageSetupTSPL")] public static extern int PageSetupTSPL(int printID, int PageWidth, int PageHeight); //画线 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "DrawLineTSPL")] public static extern int DrawLineTSPL(int printID, int StartX, int StartY, int LineWidth, int LineHeight); //TL51打印 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "PrintTSPL")] public static extern int PrintTSPL(int printID, int Set, int Copy); //画矩形 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "DrawBorderTSPL")] public static extern int DrawBorderTSPL(int printID, int LineWidth, int top_left_x, int top_left_y, int bottom_right_x, int bottom_right_y); //文字 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "DrawTextTSPL")] public static extern int DrawTextTSPL(int printID, int start_x, int start_y, bool isSimplifiedChinese, int xMultiplication, int yMultiplication, int rotate, string content); //一维条码 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "DrawBarCodeTSPL")] public static extern int DrawBarCodeTSPL(int printID, int start_x, int start_y, string type, int height, bool isReadable, int rotate, int narrowWidth, int wideWidth, string content); ////清空缓冲区 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "ClearBuffTSPL")] public static extern int ClearBuffTSPL(int printID); //二维条码 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "Draw2DBarCodeTSPL")] public static extern int Draw2DBarCodeTSPL(int printID, int start_x, int start_y, string Max, string content); //下载位图 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "DownLoadBitMapTSPL")] public static extern int DownLoadBitMapTSPL(int printID, bool isMoveFlash, string PathName); //将图片刷到缓冲区 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "PutBitMapTSPL")] public static extern int PutBitMapTSPL(int printID, int start_x, int start_y, string fileName); //得到打印机状态 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "GetPrinterStatusTSPL")] public static extern int GetPrinterStatusTSPL(int printID); //控制蜂鸣器发出一声响 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "DriveBeepTSPL")] public static extern int DriveBeepTSPL(int printID); //设置国际字符集 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "SetCharsetNameTSPL")] public static extern int SetCharsetNameTSPL(int printID, string CharsetName); //控制进纸或退纸距离 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "SetPaperbackOrPaperFeedTSPL")] public static extern int SetPaperbackOrPaperFeedTSPL(int printID, bool isFeedBack, int mDot); //指定的区域反相打印命令 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "ReverseAreaTSPL")] public static extern int ReverseAreaTSPL(int printID, int start_x, int start_y, int width, int height); //选择字符代码页 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "SelectCodePageTSPL")] public static extern int SelectCodePageTSPL(int printID, int value); //设置标签间垂直间距 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "SetGAPTSPL")] public static extern int SetGAPTSPL(int printID, double value); //定义标签的参考坐标原点命令 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "SetLabelReferenceTSPL")] public static extern int SetLabelReferenceTSPL(int printID, int x, int y); //TL21打印 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "PrintTSPL21")] public static extern int PrintTSPL21(int printID, int Set); //用于确认机型是TL21便于内部区别指令以及相关条件 [DllImport("POS_SDK.dll", CharSet = CharSet.Ansi, EntryPoint = "SetIs21")] public static extern int SetIs21(); #endregion Method } }