#ifndef LIBFRAMEWORK_THERM_IMPL_H #define LIBFRAMEWORK_THERM_IMPL_H #include "ThermalPrintClass.h" #include "ReceiptSnbc.h" #define FILE_VERSION 1 class ThermalPrintClassImpl : public ThermalPrintClass { public: ThermalPrintClassImpl(); ~ThermalPrintClassImpl(); //DeviceBaseClass ErrorCodeEnum GetDevCategory(DevCategoryInfo &devCategory); ErrorCodeEnum Reset(); ErrorCodeEnum DevClose(); ErrorCodeEnum GetLastErr(DevErrorInfo &devErrInfo); // 打开打印机 virtual ErrorCodeEnum DevOpen(BYTE btPort, DWORD dwBaudRate); // 获取打印机实时状态 virtual ErrorCodeEnum GetDevState(ThermalState& devState); //开始打印初始设置:paperWidth一般为80mm和57mm virtual ErrorCodeEnum BeginPrint(ThermalPaperType eType, int paperWidth); //打印控制指令函数:主要是打印,切纸和控制打印光标指令函数 //第三个参数是预留参数 暂时无用到 virtual ErrorCodeEnum ControlAction(PrintAction eAction, DWORD dwValue1, DWORD dwValue2 = 0); //打印参数指令函数: //第三个参数是预留参数 暂时无用到 virtual ErrorCodeEnum SetParam(CommandType eType, DWORD dwValue1, DWORD dwValue2 = 0); //打印字体指令函数:主要是字体相关饿指令函数 //第三个参数是预留参数 设置FONT_CUSTOM_SIZE用到,dwValue1表示宽,dwValue2表示长 // 设置FONT_LEFT_RIGHT_SPACE用到 dwValue1表示左边距 dwValue2表示右边距 virtual ErrorCodeEnum SetFont(FontStyle eType, DWORD dwValue1, DWORD dwValue2 = 0); //打印文本数据函数 virtual ErrorCodeEnum PrintText(BYTE* pData, DWORD dwDataLen); //打印条形码函数 //dwUnitWidth 条形码基本模块宽度 取值{2..6} 默认2 //dwHeight 条形码高度 单位mm //iHRIPosition hri字符打印位置 见枚举类型HriPosition virtual ErrorCodeEnum PrintBarCode(BarCodeType eType, BYTE* pData, DWORD dwDataLen, DWORD dwUnitWidth, DWORD dwHeight, HriPosition eHRIPosition); //打印二维码QRCode函数 //dwUnitWidth 二维码基本元素宽度 取值{1..255} 默认3 virtual ErrorCodeEnum PrintQRCode(BYTE* pData, DWORD dwDataLen, DWORD dwUnitWidth); //打印二维码QRCode函数 //dwWidth 二维码长度 ,单位mm virtual ErrorCodeEnum PrintQRCodeByArea(BYTE* pData, DWORD dwDataLen, DWORD dwUnitWidth, DWORD dwWidth); //打印二维码PDF417函数 //errorLevel pdf417纠错级别 取值{0..8} //dwUnitWidth 基本元素宽度 取值{3..90} //dwUnitHeight 基本元素长度 取值{1..30} //row pdf417 行数 取值{1..7} //lines pdf417 列数 取值{2..25} virtual ErrorCodeEnum PrintPDF417code(BYTE* pData, DWORD dwDataLen, int errorLevel, DWORD dwUnitWidth, DWORD dwUnitHeight, int rows, int lines); //打印二维码PDF417函数 //errorLevel pdf417纠错级别 取值{0..8} //dwWidth pdf417宽度 单位mm //dwHeight pdf417长度 单位mm virtual ErrorCodeEnum PrintPDF417codeByArea(BYTE* pData, DWORD dwDataLen, int errorLevel, DWORD dwWidth, DWORD dwHeight); //打印图像函数:pData是base64编码的数据 virtual ErrorCodeEnum PrintImage(BYTE* pData, DWORD dwDataLen); //获取打印失败后错误信息和错误状态 virtual ErrorCodeEnum GetLastErrState(ThermalState& devState, DevErrorInfo& devErrInfo); private: ReceiptSnbc* m_pPrint; bool m_bStartup; bool m_bFontChanged; struct FontParam { bool bUL; bool bold; bool bDW; bool bDH; int iXScale; FontParam() { bold = bUL = bDW = bDH = false; iXScale = 1; } }; FontParam m_FontParam; protected: ErrorCodeEnum GetErrorInfo(int iCode, char* sErr, ...); DevErrorInfo m_DevErrInfo; char m_sLibPath[260]; }; #endif //LIBFRAMEWORK_THERM_IMPL_H