CPosPrinterData.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #pragma once
  2. #include "../pch/pch.h"
  3. #include "../zhipuzi/CWaimaiOrder.h"
  4. #include "../zhipuzi/CDiandanOrder.h"
  5. #include "../zhipuzi/CJiaobanOrder.h"
  6. #include "../zhipuzi/CHuiyuanchognzhiOrder.h"
  7. class ChufangPrinterContent
  8. {
  9. public:
  10. std::string ip;
  11. std::string data;
  12. };
  13. //这个类,负责把订单数据转化成打印格式,用于后续打印(这个类本身不处理打印,只处理数据格式)
  14. class CPosPrinterData
  15. {
  16. public:
  17. CPosPrinterData();
  18. ~CPosPrinterData();
  19. std::string PrintWaimaiOrderShouyin(CWaimaiOrder& order);
  20. std::string PrintWaimaiOrderBiaoqian(CWaimaiOrder& order);
  21. std::vector<ChufangPrinterContent> PrintWaimaiOrderChufang(CWaimaiOrder& order);
  22. std::string PrintDiandanOrderShouyin(CDiandanOrder& order);
  23. std::string PrintDiandanOrderBiaoqian(CDiandanOrder& order);
  24. std::vector<ChufangPrinterContent> PrintDiandanOrderChufang(CDiandanOrder& order);
  25. std::string PrintJiaobanOrder(CJiaobaoOrder& order);
  26. std::string PrintHuiyuanchongzhiOrder(CHuiyuanchongzhiOrder& order);
  27. std::string GetQianxiangCommand();
  28. private:
  29. //把要打印的内容,写到string里面
  30. void WriteData(string msg);
  31. void WriteBuf(const unsigned char* buf, int len);
  32. //小票打印机和厨房打印的处理方法
  33. int POS_Reset(void);
  34. int POS_FeedLine(void);
  35. int POS_Feed(void);
  36. int POS_SetMotionUnit(int x, int y);
  37. int POS_SET_MOVE_X();
  38. int POS_MOVE_X();
  39. int POS_SET_ABS_X(int x, int y);
  40. int POS_SET_PRINT_AREA(int x, int y);
  41. int POS_TextOut(string abc, bool is_double_width = false, bool is_double_height = false, int align_type = 0);
  42. int POS_CutPaper();
  43. void POS_OutQRCode(std::string dataString);
  44. void POS_OutBmp(std::wstring ImagePath);
  45. void POS_QIANXIANG();
  46. //标签打印机的处理方法
  47. void BIAOQIAN_Reset(int nWidth, int nHeight, int nDirection);
  48. void BIAOQIAN_FORMFEED();
  49. void BIAOQIAN_TEXTOUT(std::string content, int x, int y, int x_multiplication, int y_multiplication);
  50. std::string BIAOQIAN_TEXTGet(std::string content, int x, int y, int x_multiplication, int y_multiplication);
  51. void BIAOQIAN_PRINT();
  52. void BIAOQIAN_CLS();
  53. //字符空格计算的辅助函数
  54. void CalWord(string s, int& nHanzi, int& nZimu);
  55. //对小票打印和厨房打印的名字进行换行处理
  56. std::vector<std::string> HandleFoodname(std::string oldname, int guige = 1);
  57. std::string HandleFoodItemPrice(std::string oldprice, int guige = 1);
  58. std::string HandleFoodQuantity(std::string oldquantity, int guige = 1);
  59. std::string HandleFoodTotalPrice(std::string oldprice, int guige = 1);
  60. //对标签打印的名字进行换行处理
  61. std::vector<std::string> HandleBiaoqianFoodname(std::string oldname, int nBiaoqianWdith);
  62. private:
  63. //把所有打印命令汇总到一起,然后一次性发送给打印机,这个变量用来存储一个订单的所有命令
  64. std::string m_print_content;
  65. };