| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #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
|