| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #pragma once
- #include "../pch/pch.h"
- #include "../zhipuzi/CWaimaiOrder.h"
- #include "../zhipuzi/CDiandanOrder.h"
- #include "../zhipuzi/CZhengcanOrder.h"
- #include "../zhipuzi/CJiaobanOrder.h"
- #include "../zhipuzi/CHuiyuanchognzhiOrder.h"
- class ChufangPrinterContent
- {
- public:
- std::string ip;
- std::string data;
- };
- //这个类,负责把订单数据转化成打印格式,用于后续打印(这个类本身不处理打印,只处理数据格式)
- class CPosPrinterData
- {
- public:
- CPosPrinterData();
- ~CPosPrinterData();
- std::string PrintWaimaiOrderShouyin(CWaimaiOrder& order);
- std::string PrintWaimaiOrderBiaoqian(CWaimaiOrder& order);
- std::vector<ChufangPrinterContent> PrintWaimaiOrderChufang(CWaimaiOrder& order);
- std::string PrintDiandanOrderShouyin(CDiandanOrder& order);
- std::string PrintDiandanOrderBiaoqian(CDiandanOrder& order);
- std::vector<ChufangPrinterContent> PrintDiandanOrderChufang(CDiandanOrder& order);
- std::string PrintJiaobanOrder(CJiaobaoOrder& order);
- std::string PrintHuiyuanchongzhiOrder(CHuiyuanchongzhiOrder& order);
- std::string PrintShangpintiaomaBiaoqian(CFood& foodinfo);
- std::string GetQianxiangCommand();
- private:
- //把要打印的内容,写到string里面
- void WriteData(string msg);
- void WriteBuf(const unsigned char* buf, int len);
- //小票打印机和厨房打印的处理方法
- int POS_Reset(void);
- int POS_FeedLine(void);
- int POS_Feed(void);
- int POS_SetMotionUnit(int x, int y);
- int POS_SET_MOVE_X();
- int POS_MOVE_X();
- int POS_SET_ABS_X(int x, int y);
- int POS_SET_PRINT_AREA(int x, int y);
- int POS_TextOut(string abc, bool is_double_width = false, bool is_double_height = false, int align_type = 0);
- int POS_CutPaper();
- void POS_OutQRCode(std::string dataString);
- void POS_OutBmp(std::wstring ImagePath);
- void POS_QIANXIANG();
- //标签打印机的处理方法
- void BIAOQIAN_Reset(int nWidth, int nHeight, int nDirection);
- void BIAOQIAN_FORMFEED();
- void BIAOQIAN_TEXTOUT(std::string content, int x, int y, int x_multiplication, int y_multiplication);
- void BIAOQIAN_BARCODEOUT(std::string content, int x, int y);
- std::string BIAOQIAN_TEXTGet(std::string content, int x, int y, int x_multiplication, int y_multiplication);
- void BIAOQIAN_PRINT();
- void BIAOQIAN_CLS();
- //字符空格计算的辅助函数
- void CalWord(string s, int& nHanzi, int& nZimu);
- //对小票打印和厨房打印的名字进行换行处理
- std::vector<std::string> HandleFoodname(std::string oldname, int guige = 1);
- std::string HandleFoodItemPrice(std::string oldprice, int guige = 1);
- std::string HandleFoodQuantity(std::string oldquantity, int guige = 1);
- std::string HandleFoodTotalPrice(std::string oldprice, int guige = 1);
- //对标签打印的名字进行换行处理
- std::vector<std::string> HandleBiaoqianFoodname(std::string oldname, int nBiaoqianWdith, bool is_name_big = false);
- private:
- //把所有打印命令汇总到一起,然后一次性发送给打印机,这个变量用来存储一个订单的所有命令
- std::string m_print_content;
- };
|