termalprintimpl.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #ifndef LIBFRAMEWORK_THERM_IMPL_H
  2. #define LIBFRAMEWORK_THERM_IMPL_H
  3. #include "ThermalPrintClass.h"
  4. #include "ReceiptSnbc.h"
  5. #define FILE_VERSION 1
  6. class ThermalPrintClassImpl : public ThermalPrintClass
  7. {
  8. public:
  9. ThermalPrintClassImpl();
  10. ~ThermalPrintClassImpl();
  11. //DeviceBaseClass
  12. ErrorCodeEnum GetDevCategory(DevCategoryInfo &devCategory);
  13. ErrorCodeEnum Reset();
  14. ErrorCodeEnum DevClose();
  15. ErrorCodeEnum GetLastErr(DevErrorInfo &devErrInfo);
  16. // 打开打印机
  17. virtual ErrorCodeEnum DevOpen(BYTE btPort, DWORD dwBaudRate);
  18. // 获取打印机实时状态
  19. virtual ErrorCodeEnum GetDevState(ThermalState& devState);
  20. //开始打印初始设置:paperWidth一般为80mm和57mm
  21. virtual ErrorCodeEnum BeginPrint(ThermalPaperType eType, int paperWidth);
  22. //打印控制指令函数:主要是打印,切纸和控制打印光标指令函数
  23. //第三个参数是预留参数 暂时无用到
  24. virtual ErrorCodeEnum ControlAction(PrintAction eAction, DWORD dwValue1, DWORD dwValue2 = 0);
  25. //打印参数指令函数:
  26. //第三个参数是预留参数 暂时无用到
  27. virtual ErrorCodeEnum SetParam(CommandType eType, DWORD dwValue1, DWORD dwValue2 = 0);
  28. //打印字体指令函数:主要是字体相关饿指令函数
  29. //第三个参数是预留参数 设置FONT_CUSTOM_SIZE用到,dwValue1表示宽,dwValue2表示长
  30. // 设置FONT_LEFT_RIGHT_SPACE用到 dwValue1表示左边距 dwValue2表示右边距
  31. virtual ErrorCodeEnum SetFont(FontStyle eType, DWORD dwValue1, DWORD dwValue2 = 0);
  32. //打印文本数据函数
  33. virtual ErrorCodeEnum PrintText(BYTE* pData, DWORD dwDataLen);
  34. //打印条形码函数
  35. //dwUnitWidth 条形码基本模块宽度 取值{2..6} 默认2
  36. //dwHeight 条形码高度 单位mm
  37. //iHRIPosition hri字符打印位置 见枚举类型HriPosition
  38. virtual ErrorCodeEnum PrintBarCode(BarCodeType eType, BYTE* pData,
  39. DWORD dwDataLen, DWORD dwUnitWidth,
  40. DWORD dwHeight, HriPosition eHRIPosition);
  41. //打印二维码QRCode函数
  42. //dwUnitWidth 二维码基本元素宽度 取值{1..255} 默认3
  43. virtual ErrorCodeEnum PrintQRCode(BYTE* pData, DWORD dwDataLen, DWORD dwUnitWidth);
  44. //打印二维码QRCode函数
  45. //dwWidth 二维码长度 ,单位mm
  46. virtual ErrorCodeEnum PrintQRCodeByArea(BYTE* pData, DWORD dwDataLen, DWORD dwUnitWidth, DWORD dwWidth);
  47. //打印二维码PDF417函数
  48. //errorLevel pdf417纠错级别 取值{0..8}
  49. //dwUnitWidth 基本元素宽度 取值{3..90}
  50. //dwUnitHeight 基本元素长度 取值{1..30}
  51. //row pdf417 行数 取值{1..7}
  52. //lines pdf417 列数 取值{2..25}
  53. virtual ErrorCodeEnum PrintPDF417code(BYTE* pData, DWORD dwDataLen, int errorLevel,
  54. DWORD dwUnitWidth, DWORD dwUnitHeight, int rows, int lines);
  55. //打印二维码PDF417函数
  56. //errorLevel pdf417纠错级别 取值{0..8}
  57. //dwWidth pdf417宽度 单位mm
  58. //dwHeight pdf417长度 单位mm
  59. virtual ErrorCodeEnum PrintPDF417codeByArea(BYTE* pData, DWORD dwDataLen,
  60. int errorLevel, DWORD dwWidth, DWORD dwHeight);
  61. //打印图像函数:pData是base64编码的数据
  62. virtual ErrorCodeEnum PrintImage(BYTE* pData, DWORD dwDataLen);
  63. //获取打印失败后错误信息和错误状态
  64. virtual ErrorCodeEnum GetLastErrState(ThermalState& devState, DevErrorInfo& devErrInfo);
  65. private:
  66. ReceiptSnbc* m_pPrint;
  67. bool m_bStartup;
  68. bool m_bFontChanged;
  69. struct FontParam
  70. {
  71. bool bUL;
  72. bool bold;
  73. bool bDW;
  74. bool bDH;
  75. int iXScale;
  76. FontParam()
  77. {
  78. bold = bUL = bDW = bDH = false;
  79. iXScale = 1;
  80. }
  81. };
  82. FontParam m_FontParam;
  83. protected:
  84. ErrorCodeEnum GetErrorInfo(int iCode, char* sErr, ...);
  85. DevErrorInfo m_DevErrInfo;
  86. char m_sLibPath[260];
  87. };
  88. #endif //LIBFRAMEWORK_THERM_IMPL_H