#include #include #include #include #include "MsgHandler.hpp" #include "base.h" #include "strcode.h" MsgHandler::MsgHandler() : fd(-1) {} bool MsgHandler::OpenPort(const std::string& port, const std::string& baudrate) { return true; } void MsgHandler::ClosePort() { if (fd != -1) { close(fd); fd = -1; } } bool MsgHandler::SetDevice(const std::string& device) { this->device = device; return true; } int MsgHandler::SendDeviceMsg(const std::vector& data) { std::cout << "write to " << this->device << std::endl; for (int num : data) { std::cout << std::hex << std::setw(2) << std::setfill('0') << num << " "; } std::cout << std::endl; int bytesWritten = SendMsg(data); return bytesWritten; } int MsgHandler::RecvDeviceMsg(std::vector& data, int timeoutMs) { int bytesRead = RecvMsg(data, timeoutMs); if (bytesRead > 0) { std::cout << "read from " << this->device << std::endl; for (int num : data) { std::cout << std::hex << std::setw(2) << std::setfill('0') << num << " "; } std::cout << std::endl; } return bytesRead; } int MsgHandler::SendMsg(const std::vector& data) { if (fd == -1) { perror("设备未打开"); return -1; } int bytesWritten = write(fd, data.data(), data.size()); if (bytesWritten < 0) { perror("发送数据失败"); } return bytesWritten; } int MsgHandler::RecvMsg(std::vector& data, int timeoutMs) { if (fd == -1) { perror("设备未打开\n"); return -1; } // 使用select实现超时 fd_set readfds; struct timeval tv; FD_ZERO(&readfds); FD_SET(fd, &readfds); tv.tv_sec = timeoutMs / 1000; tv.tv_usec = (timeoutMs % 1000) * 1000; int ret = select(fd + 1, &readfds, NULL, NULL, &tv); if (ret == -1) { perror("select错误"); return -1; } else if (ret == 0) { //无数据可读 return 0; } // 有数据可读 uint8_t bytes; if (ioctl(fd, FIONREAD, &bytes) < 0) { perror("ioctl FIONREAD失败"); return -1; } data.resize(bytes); int bytesRead = read(fd, data.data(), bytes); if (bytesRead < 0) { perror("读取数据失败"); return -1; } return bytesRead; } void MsgHandler::HandleDdsMsg(const std::map& msg) { EncodeMsg(msg); SendDeviceMsg(m_PrintData); } void MsgHandler::EncodeMsg(const std::map& msg) { if(device == "T080") { auto it = msg.find("Title"); if(it != msg.end()) { if(it->second == "入厂排队票") { Print1_2(msg); } else if(it->second == "燃料轻磅票") { Print2_2(msg); } else if(it->second == "过衡单") { Print3_2(msg); } else if(it->second == "转煤单") { Print4_2(msg); } else if(it->second == "灰磅票") { Print5_2(msg); } else if(it->second == "提货单") { Print6_2(msg); } else if(it->second == "发货单") { Print6_2(msg); } } } else if(device == "Star") { auto it = msg.find("Title"); if(it != msg.end()) { if(it->second == "入厂排队票") { Print1_1(msg); } } } else if(device == "NP80A") { auto it = msg.find("Title"); if(it != msg.end()) { if(it->second == "排队票") { Print1_3(msg); } else if(it->second == "燃料轻磅票") { Print2_3(msg); } else if(it->second == "转煤单") { Print4_3(msg); } else if(it->second == "配煤票") { Print5_3(msg); } else if(it->second == "灰磅票") { Print6_3(msg); } else if(it->second == "过磅票") { Print8_3(msg); } } } } //行线条生成器 std::vector MsgHandler::BuildLine(int m_max, const std::map& PointList, int no_line_min, int no_line_max) { std::vector m_ba; for (int i=1;isecond.c_str()); } else { if(i <= no_line_min || i >= no_line_max){ szTemp = ot::UTF8ToGB2312("─"); } else { szTemp = ot::UTF8ToGB2312(" "); } } m_ba.insert(m_ba.end(), szTemp.begin(), szTemp.end()); } return m_ba; } //行线条生成器 std::vector MsgHandler::BuildStringLine(std::map& PointList) { std::vector m_ba; for (auto &p : PointList) { char s[4]={0}; memcpy(s,&(p.first),2); std::string szTemp; szTemp=ot::UTF8ToGB2312(p.second.c_str()); //设置横向绝对位置 m_ba.insert(m_ba.end(), {0x1B, 0x24}); m_ba.insert(m_ba.end(), s, s+2); m_ba.insert(m_ba.end(), szTemp.begin(), szTemp.end()); } return m_ba; } //行线条生成器 std::vector MsgHandler::BuildStringLine_HSK33(std::map& PointList) { std::vector m_ba; for (auto &p : PointList) { std::string szTemp; szTemp=ot::UTF8ToGB2312(p.second.c_str()); m_ba.insert(m_ba.end(), szTemp.begin(), szTemp.end()); } return m_ba; } //打印机 //清空 并设置纸大小 void MsgHandler::Page_ClearAndSet(std::vector& Data, char * h1h2h3h4) { char sbuf[8] = {0x1B, 'D', h1h2h3h4[0], h1h2h3h4[1], h1h2h3h4[2], h1h2h3h4[3], 0x0A, 0x00}; //清空 Data.insert(Data.end(), {0x1B, 'C', 0x0A, 0x00}); //设置纸大小 Data.insert(Data.end(), std::begin(sbuf), std::end(sbuf)); } //根据起点和结束点的坐标值定义指定宽度的直线/边框 /// 根据起点和结束点的坐标值定义指定宽度的直线/边框,并将此 /// 予编号。即定义线条的格式。 /// 本命令不可以定义斜线。 /// 有效的定义命令同时将在打印映像缓冲区中实现线条数据。映像 /// 命令将无法清除本命令定义的格式。 /// 清除本命令定义的格式应使用页面格式清除指令(ESC C)或线条 /// 令(ESC E)。 /// n1n2: 线条编号 /// x1x2x3x4: 起始点的X方向坐标,单位 0.1mm毫米 /// y1y2y3y4: 起始点的Y方向坐标,单位 0.1mm毫米 /// x5x6x7x8: 结束点的X方向坐标,单位 0.1mm毫米 /// y5y6y7y8: 结束点的Y方向坐标,单位 0.1mm毫米 /// d: 线条方向(根据打印机型号不同可定义值不同 /// 规范 A /// d=48 (“0”) 水平线 /// d=49 (“1”) 垂直线 /// 规范 B /// d=48 (“0”) 水平线 /// d=49 (“1”) 垂直线 /// d=50 (“2”) 边框 /// w: 以点为单位的线条宽度(1点 = 0.125mm毫米) /// 水平线(d=”0”)应使用y方向的常数设置(即y1y2y3y4 = y5y /// 垂直线(d=”1”)应使用x方向的常数设置(即x1x2x3x4 = x5x /// 例如:当打印区域为水平方向104毫米,垂直方向300毫米时 /// X方向 Y方向 /// x1x2x3x4,x5x6x7x8 y1y2y3y4,y5y6y7y8 /// 水平线设置范围:“0000”到“1040” “0000”到“2999” /// 垂直线设置范围:“0000”到“1039” “0000”到“3000” /// 方框可设置范围:“0000”到“1040” “0000”到“3000” void MsgHandler::Page_ESCL (std::vector& Data, const char *n1n2, const char *x1x2x3x4, const char *y1y2y3y4, const char *x5x6x7x8, const char *y5y6y7y8, char d, char w) { //打印命令 char cbuf[30]; cbuf[0] = 0x1B; cbuf[1] = 'L'; memcpy(&cbuf[2],n1n2,2); cbuf[4] = ';'; memcpy(&cbuf[5],x1x2x3x4,4); cbuf[9] = ','; memcpy(&cbuf[10],y1y2y3y4,4); cbuf[14] = ','; memcpy(&cbuf[15],x5x6x7x8,4); cbuf[19] = ','; memcpy(&cbuf[20],y5y6y7y8,4); cbuf[24] = ','; cbuf[25] = d; cbuf[26] = ','; cbuf[27] = w; cbuf[28] = 0x0A; cbuf[29] = 0x00; Data.insert(Data.end(), std::begin(cbuf), std::end(cbuf)); } //指定字符串的位置、字体、高度、宽度、字符间距以及字符和字符串 /// /// 清除本命令定义的格式应使用页面格式清除指令(ESC C)。 /// 指定字符串的位置、字体、高度、宽度、字符间距以及字符和字符串 /// 的旋转方向,并将此定义赋予编号。即定义字符串的格式 /// n1n2: 字符串编号 /// x1x2x3x4: 字符串起始点的X方向坐标,单位 0.1mm毫米 /// y1y2y3y4: 字符串起始点的Y方向坐标,单位 0.1mm毫米 /// w: 每个字符的宽度倍数(可设置为1,2,3,4,5,6倍) /// h: 每个字符的高度倍数(可设置为1,2,3,4,5,6倍) /// c: 字符的字体定义(不同字体有不同的点尺寸) /// 1: 小字体(8x16点)/2: 标准字体(16x24点) /// 3: 汉字(12x24汉字模式字母和数字/24x24汉字 /// 4: 粗体(24x32点) /// r1: 字符的旋转方向(0: 0°, 1: 90°, 2: 180°, 3: 270°) /// r2: 字符串的旋转方向(0: 0°, 1: 90°, 2: 180°, 3: 270 /// d1d2: 字符间距(单位: 点/0.125mm毫米) /// 本参数以及参数前的“,”可以忽略 /// 忽略本参数时使用“ESC Y”命令定义的间距值 /// s1s2: 字符修饰(最终修饰由s1和s2的值叠加) /// s1=48(“0”)无修饰 s1=49(“1”)字符加粗 /// s2=48(“0”)无修饰 s2=49(“1”)下划线 s2=50(“2”)反白 /// a: 打印颜色(仅在打印机设置为双色打印时有效) /// a=48(“0”) 黑色 /// a=49(“1”) 红色 /// 参数“,d1d2,s1s2,a”可忽略(如果忽略则设置为黑色,无字符修饰.使用 ESC Y /// 设置字符间距) /// 旋转是以顺时针方向围绕参照点为中心进行。 /// 字符放大(宽度和高度倍数放大)时字符间距不进行放大 /// 指定字体为汉字或光学识别字符(OCR)时国际字符集定义无效 /// 指定字体为粗体或光学识别字符(OCR)时日文假名无效(日文版本 /// 指定字体为汉字时根据打印机型号会有不同的处理方式(语言版本 void MsgHandler::Page_ESCPC(std::vector& Data, const char *n1n2, const char *x1x2x3x4, const char *y1y2y3y4, char w, char h, char c, const char * r1r2, const char * s1s2) { //命令 char cbuf[34]; cbuf[0] = 0x1B; cbuf[1] = 'P'; cbuf[2] = 'C'; memcpy(&cbuf[3],n1n2,2); cbuf[5] = ';'; memcpy(&cbuf[6],x1x2x3x4,4); cbuf[10] = ','; memcpy(&cbuf[11],y1y2y3y4,4); cbuf[15] = ','; cbuf[16] = w; cbuf[17] = ','; cbuf[18] = h; cbuf[19] = ','; cbuf[20] = c; cbuf[21] = ','; cbuf[22] = r1r2[0]; cbuf[23] = r1r2[1]; cbuf[24] = ','; cbuf[25] = '0'; cbuf[26] = '2'; cbuf[27] = ','; cbuf[28] = s1s2[0]; cbuf[29] = s1s2[1]; cbuf[30] = ','; cbuf[31] = '0'; cbuf[32] = 0x0A; cbuf[33] = 0x00; Data.insert(Data.end(), std::begin(cbuf), std::end(cbuf)); } //为使用字符串格式设置命令定义的字符串赋以内容。 /// /// 为使用字符串格式设置命令定义的字符串赋以内容。 /// 新定义将覆盖以前输出映像缓冲区中的内容。 /// 因此可不重新定义格式仅重新定义字符串内容。旧的即以前定义的字 /// 符串内容将被删除,然后生成新字符串的内容映像。 /// 页面格式清除指令(ESC C)清除本命令定义的内容。 /// 清除输出映像缓冲区指令(ESC X)清除本命令定义的内容。 /// n1n2: 字符串编号 /// a1a2……an: 打印字符串内容(最多100个字符/50个汉字) /// /// 字符串编号 /// 打印字符串内容(最多100个字符/50个汉字) void MsgHandler::Page_ESCRC(std::vector& Data, const char *n1n2, const char *str) { //命令 char cbuf[6] = {0x1B, 'R', 'C', n1n2[0], n1n2[1], ';'}; Data.insert(Data.end(), std::begin(cbuf), std::end(cbuf)); int len = strlen(str); if (len >100) len = 100; int ct = 0; for(int i=0;i8) ct = 8; Data.insert(Data.end(), str+i, str+i+ct); i+=ct; } Data.insert(Data.end(), {0x0A, 0x00}); } /// 将位图文件(BMP文件)作为图像数据写入输出映像缓冲区。 /// 可选择覆盖(:冒号)/叠加(;分号)方式。 /// 页面格式清除指令(ESC C)清除本命令定义的内容。 /// 清除输出映像缓冲区指令(ESC X)清除本命令定义的内容。 /// x1x2x3x4: 位图打印起始点的X方向坐标,单位 0.1mm毫米 /// y1y2y3y4: 位图打印起始点的Y方向坐标,单位 0.1mm毫米 /// n: 位图写入的模式。 /// :(冒号)覆盖方式 /// ;(分号)叠加方式 /// BMP文件数据: BMP文件的所有内容。 /// 要求是黑白格式的非压缩BMP文件。因此并非所有的 /// BMP文件可以直接以此方式作为图像发送到打印机。 /// 图像最大为 64k void MsgHandler::Page_ESCH(std::vector& Data, char n, char *x1x2x3x4, char *y1y2y3y4, char *bmp, int bmpsize) { //命令 char cbuf[13]; cbuf[0] = 0x1B; cbuf[1] = 'H'; cbuf[2] = n; memcpy(&cbuf[3],x1x2x3x4,4); cbuf[7] = ','; memcpy(&cbuf[8],y1y2y3y4,4); cbuf[12] = ','; Data.insert(Data.end(), std::begin(cbuf), std::end(cbuf)); int ct = 0; for(int i=0;i8) ct = 8; Data.insert(Data.end(), bmp+i, bmp+i+ct); i+=ct; } Data.insert(Data.end(), {',' ,0x0A, 0x00}); } //切纸 void MsgHandler::Page_Cut(std::vector& Data) { //打印并出纸 Data.insert(Data.end(), {0x1B, 'B' ,0x0A, 0x00}); } //结束 void MsgHandler::Page_End(std::vector& Data) { //打印并出纸 Data.insert(Data.end(), {0x1B, 'I' ,0x0A, 0x00}); } //获取长度字符串 void MsgHandler::GtstrLength(int iVal, char *p) { std::string szTemp = std::to_string(iVal); szTemp = szTemp.substr(szTemp.length() - 4); memcpy(p, szTemp.c_str(), 4); } //Star打印机打印排队票 void MsgHandler::Print1_1(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; char sTemp[5]={0}; m_PrintData.clear(); //画线 bool m_PrintGrossAndTare=false; bool m_PrintSuttle=false; int m_AllLines=8; int m_iTemp=0; int m_top=10120; if ((msg.find("GrossWeight") != msg.end()) || (msg.find("TareWeight") != msg.end())) { //需要打印发运毛重和发运皮重 m_PrintGrossAndTare=true; m_AllLines++; } if (msg.find("SuttleWeight") != msg.end()) { //需要打印发运净重 m_PrintSuttle=true; m_AllLines++; } it = msg.find("MCFB"); int m_lines = 0; int m_oneline=40; if(it != msg.end()) { m_lines=it->second.length()/m_oneline; if ((it->second.length()%m_oneline)>0) { m_lines+=1; } m_AllLines+=m_lines; } m_iTemp=74*m_AllLines+m_top+100; GtstrLength(m_iTemp,sTemp); //单位为0.1毫米 Page_ClearAndSet(m_PrintData, sTemp); //设置纸长 104 毫米 m_iTemp=74*m_AllLines+m_top; GtstrLength(m_iTemp,sTemp); Page_ESCL(m_PrintData, (char *)"00", (char *)"0030", (char *)"0120", (char *)"0688", sTemp, '2','1'); //框 m_iTemp=m_top+74; GtstrLength(m_iTemp,sTemp); Page_ESCL(m_PrintData, (char *)"01", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线1 m_iTemp+=74; GtstrLength(m_iTemp,sTemp); Page_ESCL(m_PrintData, (char *)"02", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线2 m_iTemp+=74; GtstrLength(m_iTemp,sTemp); Page_ESCL(m_PrintData, (char *)"03", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线3 m_iTemp+=74; GtstrLength(m_iTemp,sTemp); Page_ESCL(m_PrintData, (char *)"04", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线4 //毛皮重 if (m_PrintGrossAndTare) { m_iTemp+=74; GtstrLength(m_iTemp,sTemp); Page_ESCL(m_PrintData, (char *)"05", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线5 } //净重 if (m_PrintSuttle) { m_iTemp+=74; GtstrLength(m_iTemp,sTemp); Page_ESCL(m_PrintData, (char *)"06", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线6 } m_iTemp+=74; GtstrLength(m_iTemp,sTemp); Page_ESCL(m_PrintData, (char *)"07", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线7 Page_ESCL(m_PrintData, (char *)"20", (char *)"0180", (char *)"0194", (char *)"0180", sTemp,'1','1'); //竖线1 Page_ESCL(m_PrintData, (char *)"21", (char *)"0360", (char *)"0268", (char *)"0360", sTemp,'1','1'); //竖线2 Page_ESCL(m_PrintData, (char *)"22", (char *)"0520", (char *)"0268", (char *)"0520", sTemp,'1','1'); //竖线3 //煤场要若干行 m_iTemp+=74*m_lines; GtstrLength(m_iTemp,sTemp); Page_ESCL(m_PrintData, (char *)"08", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线8 char sTemp1[5]={0}; m_iTemp+=74; GtstrLength(m_iTemp,sTemp1); Page_ESCL(m_PrintData, (char *)"09", (char *)"0030", sTemp1, (char *)"0688", sTemp1,'0','1'); //横线9 Page_ESCL(m_PrintData, (char *)"23", (char *)"0180", sTemp1, (char *)"0180", sTemp,'1','1'); //竖线1 Page_ESCL(m_PrintData, (char *)"24", (char *)"0360", sTemp1, (char *)"0360", sTemp,'1','1'); //竖线2 Page_ESCL(m_PrintData, (char *)"25", (char *)"0510", sTemp1, (char *)"0510", sTemp,'1','1'); //竖线3 m_iTemp+=74; GtstrLength(m_iTemp,sTemp); Page_ESCL(m_PrintData, (char *)"10", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线10 //打印采样单 it = msg.find("TitleCorp"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("入厂排队票"); //入厂排队票 } Page_ESCPC(m_PrintData, (char *)"00",(char *)"0030",(char *)"0000",'2','2','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"00",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); //开票时间 Page_ESCPC(m_PrintData, (char *)"01",(char *)"0040",(char *)"0140",'1','1','3',(char *)"00",(char *)"00"); it = msg.find("DateTime"); if(it != msg.end()) { Page_ESCRC(m_PrintData, (char *)"01",ot::UTF8ToGB2312(it->second.c_str()).c_str()); } //供应商 Page_ESCPC(m_PrintData, (char *)"02",(char *)"0040",(char *)"0214",'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"02",ot::UTF8ToGB2312("供应商").c_str()); Page_ESCPC(m_PrintData, (char *)"03",(char *)"0200",(char *)"0214",'1','1','3',(char *)"00",(char *)"00"); it = msg.find("Supplier"); if(it != msg.end()) { Page_ESCRC(m_PrintData, (char *)"03",ot::UTF8ToGB2312(it->second.c_str()).c_str()); } //排队号 Page_ESCPC(m_PrintData, (char *)"04",(char *)"0040",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"04",ot::UTF8ToGB2312("排队号").c_str()); Page_ESCPC(m_PrintData, (char *)"05",(char *)"0200",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); it = msg.find("QueueID"); if(it != msg.end()) { Page_ESCRC(m_PrintData, (char *)"05",ot::UTF8ToGB2312(it->second.c_str()).c_str()); } //品 种 Page_ESCPC(m_PrintData, (char *)"06",(char *)"0380",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"06",ot::UTF8ToGB2312("品 种").c_str()); Page_ESCPC(m_PrintData, (char *)"07",(char *)"0540",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); it = msg.find("GoodsType"); if(it != msg.end()) { Page_ESCRC(m_PrintData, (char *)"07",ot::UTF8ToGB2312(it->second.c_str()).c_str()); } //车牌号 Page_ESCPC(m_PrintData, (char *)"08",(char *)"0040",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"08",ot::UTF8ToGB2312("车牌号").c_str()); Page_ESCPC(m_PrintData, (char *)"09",(char *)"0200",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); it = msg.find("CarNumber"); if(it != msg.end()) { Page_ESCRC(m_PrintData, (char *)"09",ot::UTF8ToGB2312(it->second.c_str()).c_str()); } //自编号 Page_ESCPC(m_PrintData, (char *)"10",(char *)"0380",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"10",ot::UTF8ToGB2312("自编号").c_str()); Page_ESCPC(m_PrintData, (char *)"11",(char *)"0540",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); it = msg.find("CarID"); if(it != msg.end()) { Page_ESCRC(m_PrintData, (char *)"11",ot::UTF8ToGB2312(it->second.c_str()).c_str()); } m_iTemp=10362+74; GtstrLength(m_iTemp,sTemp); //毛皮重 if (m_PrintGrossAndTare) { //发运毛重 it = msg.find("GrossWeight"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()); } else szTemp=""; Page_ESCPC(m_PrintData, (char *)"12",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"12",ot::UTF8ToGB2312("发运毛重").c_str()); Page_ESCPC(m_PrintData, (char *)"13",(char *)"0200",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"13",szTemp.c_str()); //发运皮重 it = msg.find("TareWeight"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()); } else szTemp=""; Page_ESCPC(m_PrintData, (char *)"14",(char *)"0380",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"14",ot::UTF8ToGB2312("发运皮重").c_str()); Page_ESCPC(m_PrintData, (char *)"15",(char *)"0540",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"15",szTemp.c_str()); m_iTemp+=74; GtstrLength(m_iTemp,sTemp); } //发运净重 if (m_PrintSuttle) { it = msg.find("SuttleWeight"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()); } else szTemp=""; Page_ESCPC(m_PrintData, (char *)"16",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"16",ot::UTF8ToGB2312("发运净重").c_str()); Page_ESCPC(m_PrintData, (char *)"17",(char *)"0200",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"17",szTemp.c_str()); m_iTemp+=74; GtstrLength(m_iTemp,sTemp); } //采样机 Page_ESCPC(m_PrintData, (char *)"18",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"18",ot::UTF8ToGB2312("采样机").c_str()); Page_ESCPC(m_PrintData, (char *)"19",(char *)"0200",sTemp,'1','1','3',(char *)"00",(char *)"00"); it = msg.find("sample_machine"); if(it != msg.end()) { Page_ESCRC(m_PrintData, (char *)"19",ot::UTF8ToGB2312(it->second.c_str()).c_str()); } //接样员 Page_ESCPC(m_PrintData, (char *)"20",(char *)"0380",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"20",ot::UTF8ToGB2312("接样员").c_str()); //处理煤场 it = msg.find("MCFB"); if (m_lines>0) { m_iTemp+=74; GtstrLength(m_iTemp,sTemp); szTemp=it->second.substr(0,m_oneline); Page_ESCPC(m_PrintData, (char *)"21",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"21",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); } if (m_lines>1) { m_iTemp+=74; GtstrLength(m_iTemp,sTemp); szTemp=it->second.substr(1*m_oneline,m_oneline); Page_ESCPC(m_PrintData, (char *)"22",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"22",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); } if (m_lines>2) { m_iTemp+=74; GtstrLength(m_iTemp,sTemp); szTemp=it->second.substr(2*m_oneline,m_oneline); Page_ESCPC(m_PrintData, (char *)"23",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"23",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); } if (m_lines>3) { m_iTemp+=74; GtstrLength(m_iTemp,sTemp); szTemp=it->second.substr(3*m_oneline,m_oneline); Page_ESCPC(m_PrintData, (char *)"24",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"24",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); } if (m_lines>4) { m_iTemp+=74; GtstrLength(m_iTemp,sTemp); szTemp=it->second.substr(4*m_oneline,m_oneline); Page_ESCPC(m_PrintData, (char *)"25",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"25",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); } if (m_lines>5) { m_iTemp+=74; GtstrLength(m_iTemp,sTemp); szTemp=it->second.substr(5*m_oneline,m_oneline); Page_ESCPC(m_PrintData, (char *)"26",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"26",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); } if (m_lines>6) { m_iTemp+=74; GtstrLength(m_iTemp,sTemp); szTemp=it->second.substr(6*m_oneline,m_oneline); Page_ESCPC(m_PrintData, (char *)"27",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"27",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); } m_iTemp+=74; GtstrLength(m_iTemp,sTemp); //煤场验收 Page_ESCPC(m_PrintData, (char *)"31",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"31",ot::UTF8ToGB2312("煤场验收").c_str()); //煤 场 Page_ESCPC(m_PrintData, (char *)"32",(char *)"0380",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"32",ot::UTF8ToGB2312("煤 场").c_str()); m_iTemp+=74; GtstrLength(m_iTemp,sTemp); Page_ESCPC(m_PrintData, (char *)"33",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"33",ot::UTF8ToGB2312("采样调换至 号,签字:").c_str()); m_iTemp+=74; GtstrLength(m_iTemp,sTemp); Page_ESCPC(m_PrintData, (char *)"34",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); Page_ESCRC(m_PrintData, (char *)"34",ot::UTF8ToGB2312("煤场调换至 号,签字:").c_str()); Page_Cut(m_PrintData); Page_End(m_PrintData); } //北洋打印机打印排队票 void MsgHandler::Print1_2(const std::map& msg) { std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; int x = 40; int y = 0; int dx = 590; int dy = 950; char s[12]; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置打印区域 memcpy(s, &x, 2); memcpy(s + 2, &y, 2); memcpy(s + 4, &dx, 2); memcpy(s + 6, &dy, 2); m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); m_PrintData.insert(m_PrintData.end(), s, s+8); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); it = msg.find("TitleCorp"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("入厂排队票"); //入厂排队票 } m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); szTemp = ot::UTF8ToGB2312(" "); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //设置页模式 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); //=============================开票时间===================================== //加顶框 m_newObj[1] = ("┌"); m_newObj[23] = ("┐"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //票据时间 m_newObj.clear(); m_newObj[1] = ("│"); it = msg.find("DateTime"); if(it != msg.end()) { m_newObj[25] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //加框 m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //供应商 m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("供应商"); m_newObj[120] = ("│"); it = msg.find("Supplier"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //加框 m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┬"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("排队号"); m_newObj[120] = ("│"); it = msg.find("QueueID"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[263] = ("│"); m_newObj[288] = ("品 种"); m_newObj[383] = ("│"); it = msg.find("GoodsType"); if(it != msg.end()) { m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //加框 m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┬"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("车牌号"); m_newObj[120] = ("│"); it = msg.find("CarNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[263] = ("│"); m_newObj[288] = ("自编号"); m_newObj[383] = ("│"); it = msg.find("CarID"); if(it != msg.end()) { m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //加框 m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┬"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //需要打印发运毛重和发运皮重 m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("发运毛重"); m_newObj[120] = ("│"); it = msg.find("GrossWeight"); if (it != msg.end()) { m_newObj[145] = it->second; } m_newObj[263] = ("│"); m_newObj[288] = ("发运皮重"); m_newObj[383] = ("│"); it = msg.find("TareWeight"); if (it != msg.end()) { m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24, m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); // 需要打印发运净重 m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("发运净重"); m_newObj[120] = ("│"); it = msg.find("SuttleWeight"); if (it != msg.end()) { m_newObj[145] = it->second; } m_newObj[263] = ("│"); m_newObj[383] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24, m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("采样机"); m_newObj[120] = ("│"); it = msg.find("sample_machine"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[263] = ("│"); m_newObj[288] = ("接样员"); m_newObj[383] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┴"); m_newObj[12] = ("┴"); m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //这里要加入煤场信息 it = msg.find("MCFB"); if(it != msg.end()) { int m_oneline=40; int m_lines=it->second.length()/m_oneline; if ((it->second.length()%m_oneline)>0) { m_lines+=1; } for (int i=0;isecond.substr(i*m_oneline,m_oneline); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = (szTemp); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); } } m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("采样调换至 号,签字:"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("煤场调换至 号,签字:"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┬"); m_newObj[12] = ("┬"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("煤场验收"); m_newObj[120] = ("│"); m_newObj[263] = ("│"); m_newObj[288] = ("煤 场"); m_newObj[383] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("计 扣 量"); m_newObj[120] = ("│"); m_newObj[263] = ("│"); m_newObj[288] = ("签 字"); m_newObj[383] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("└"); m_newObj[6] = ("┴"); m_newObj[12] = ("┴"); m_newObj[17] = ("┴"); m_newObj[23] = ("┘"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); } //北洋打印机打印轻磅票 void MsgHandler::Print2_2(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; int x=40; int y=0; int dx=590; //570 int dy=1400; char s[12]; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置打印区域 memcpy(s, &x, 2); memcpy(s + 2, &y, 2); memcpy(s + 4, &dx, 2); memcpy(s + 6, &dy, 2); m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); m_PrintData.insert(m_PrintData.end(), s, s+8); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置打印方向 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x54, 0x03}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //设置页模式 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); //打印磅单 szTemp = (" "); m_newObj.clear(); m_newObj[100] = szTemp; blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //打印磅单 m_newObj.clear(); it = msg.find("TitleCorp"); if(it != msg.end()) { m_newObj[340] = it->second + "收煤凭证"; //收煤凭证 } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); szTemp=(" "); m_newObj.clear(); m_newObj[100] = szTemp; blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //车牌号和票据号 m_newObj.clear(); m_newObj[10] = ("车牌号:"); it = msg.find("CarNumber"); if(it != msg.end()) { m_newObj[190] = it->second; } m_newObj[600] = ("NO:"); it = msg.find("CoalNumber"); if(it != msg.end()) { m_newObj[700] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[100] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //供应商 m_newObj.clear(); m_newObj[10] = ("供应商:"); it = msg.find("Supplier"); if(it != msg.end()) { m_newObj[190] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[100] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //时间和品种 m_newObj.clear(); m_newObj[10] = ("品 种:"); it = msg.find("GoodsType"); if(it != msg.end()) { m_newObj[190] = it->second; } m_newObj[600] = ("时间:"); it = msg.find("DateTime"); if(it != msg.end()) { m_newObj[740] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[100] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[10] = ("毛重"); it = msg.find("GrossWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[450] = ("皮重"); it = msg.find("TareWeight"); if(it != msg.end()) { m_newObj[558] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[100] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[10] = ("扣矸"); it = msg.find("RockWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[450] = ("净重"); it = msg.find("SuttleWeight"); if(it != msg.end()) { m_newObj[558] = it->second; } if(msg.find("AffixSeal") != msg.end()) { m_newObj[800] = ("盖章"); } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[100] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[10] = ("扣水"); it = msg.find("WaterWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[450] = ("扣杂"); it = msg.find("OtherWeight"); if(it != msg.end()) { m_newObj[558] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[100] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); // m_newObj.clear(); // int count = 0; // auto m_dsz = msg.find("dsz"); // auto m_dsd = msg.find("dsd"); // auto m_dsf = msg.find("dsf"); // auto m_zsd = msg.find("zsd"); // auto m_zsf = msg.find("zsf"); // auto m_ksd = msg.find("ksd"); // auto m_ksf = msg.find("ksf"); // auto m_ddsf = msg.find("ddsf"); // if((m_dsz != msg.end()) && (m_dsd != msg.end()) && (m_dsf != msg.end())) // { // if(m_dsz != msg.end()) // { // m_newObj[10] = ("大生中"); // m_newObj[190] = m_dsz->second; // count++; // } // if(m_dsd != msg.end()) // { // if(count == 0) // { // m_newObj[10] = ("大生丁"); // m_newObj[190] = m_dsd->second; // } // else if(count == 1) // { // m_newObj[500] = ("大生丁"); // m_newObj[680] = m_dsd->second; // } // count++; // } // if(m_dsf != msg.end()) // { // if(count == 0) // { // m_newObj[10] = ("大生粉"); // m_newObj[190] = m_dsf->second; // } // else if(count == 1) // { // m_newObj[500] = ("大生粉"); // m_newObj[680] = m_dsf->second; // } // else if(count == 2) // { // m_newObj[900] = ("大生粉"); // m_newObj[1080] = m_dsf->second; // } // count++; // } // } // else if((m_zsd != msg.end()) || (m_zsf != msg.end())) // { // if(m_zsd != msg.end()) // { // m_newObj[10] = ("中生丁"); // m_newObj[190] = m_zsd->second; // count++; // } // if(m_zsf != msg.end()) // { // if(count == 0) // { // m_newObj[10] = ("中生粉"); // m_newObj[190] = m_zsf->second; // } // else if(count == 1) // { // m_newObj[500] = ("中生粉"); // m_newObj[680] = m_zsf->second; // } // count++; // } // } // else if((m_ksd != msg.end()) || (m_ksf != msg.end())) // { // if(m_ksd != msg.end()) // { // m_newObj[10] = ("块生丁"); // m_newObj[190] = m_ksd->second; // count++; // } // if(m_ksf != msg.end()) // { // if(count == 0) // { // m_newObj[10] = ("块生粉"); // m_newObj[190] = m_ksf->second; // } // else if(count == 1) // { // m_newObj[500] = ("块生粉"); // m_newObj[680] = m_ksf->second; // } // count++; // } // } // else if(m_ddsf != msg.end()) // { // m_newObj[10] = ("丁生粉"); // m_newObj[190] = m_ddsf->second; // } // blTemp = BuildStringLine(m_newObj); // m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); // m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[100] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); m_newObj.clear(); m_newObj[10] = ("备注:单位:吨"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); if(msg.find("ElectChapter") != msg.end()) { //打印电子章设置横向绝对位置 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x24, 0xB6, 0x03}); //打印电子章设置纵向绝对位置 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x24, 0x26, 0x02}); //打印下载NV位图 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x70, 0x01, 0x00}); //打印条码设置横向绝对位置 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x24, 0xE4, 0x02}); //打印条码设置纵向绝对位置 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x24, 0x0D, 0x02}); //设置条码打印字符和条码宽度,高度 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x6F, 0x00, 0x08, 0x00, 0x02}); //打印条码命令 //票据号 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x6B, 0x0B, 0x51, 0x41, 0x2C}); it = msg.find("CoalNumber"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()); } m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x00}); } //打印 m_PrintData.insert(m_PrintData.end(), {0x0C}); //切纸 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x56, 0x01}); } //北洋打印机打印通用称重票 void MsgHandler::Print3_2(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; int x = 40; int y = 0; int dx = 590; int dy = 850; char s[12]; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置打印区域 memcpy(s, &x, 2); memcpy(s + 2, &y, 2); memcpy(s + 4, &dx, 2); memcpy(s + 6, &dy, 2); m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); m_PrintData.insert(m_PrintData.end(), s, s+8); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); //打印物料过衡单 it = msg.find("TitleCorp"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("过衡单"); //过衡单 } m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); szTemp = ot::UTF8ToGB2312(" "); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //设置页模式 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); //=============================开票时间===================================== //加顶框 //加顶框 m_newObj[1] = ("┌"); m_newObj[23] = ("┐"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====票据号===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("票据号"); m_newObj[120] = ("│"); it = msg.find("CoalNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====车牌号===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("车牌号"); m_newObj[120] = ("│"); it = msg.find("CarNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=======供应商===================== m_newObj.clear(); m_newObj[1] = ("│"); it = msg.find("SupplierTitle"); if(it != msg.end()) { m_newObj[26] = it->second; } m_newObj[120] = ("│"); it = msg.find("Supplier"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========品种===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("品种"); m_newObj[120] = ("│"); it = msg.find("GoodsType"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========皮重时间===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("皮重时间"); m_newObj[120] = ("│"); it = msg.find("TareWeightTime"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========毛重时间===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("毛重时间"); m_newObj[120] = ("│"); it = msg.find("GrossWeightTime"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========毛重====================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("毛重"); m_newObj[120] = ("│"); it = msg.find("GrossWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[384] = ("│"); m_newObj[404] = ("吨"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========皮重====================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("皮重"); m_newObj[120] = ("│"); it = msg.find("TareWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[384] = ("│"); m_newObj[404] = ("吨"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========净重====================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("净重"); m_newObj[120] = ("│"); it = msg.find("SuttleWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[384] = ("│"); m_newObj[404] = ("吨"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========操作员===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("操作员"); m_newObj[120] = ("│"); it = msg.find("Operator"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========备注===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("备注"); m_newObj[120] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("└"); m_newObj[6] = ("┴"); m_newObj[23] = ("┘"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); } //北洋打印机打印转煤票 void MsgHandler::Print4_2(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; int x = 40; int y = 0; int dx = 590; int dy = 850; char s[12]; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置打印区域 memcpy(s, &x, 2); memcpy(s + 2, &y, 2); memcpy(s + 4, &dx, 2); memcpy(s + 6, &dy, 2); m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); m_PrintData.insert(m_PrintData.end(), s, s+8); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); it = msg.find("TitleCorp"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("转煤单"); //转煤单 } m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); szTemp = ot::UTF8ToGB2312(" "); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //设置页模式 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); //=============================开票时间===================================== //加顶框 m_newObj[1] = ("┌"); m_newObj[23] = ("┐"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====票据号===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("称重编号"); m_newObj[120] = ("│"); it = msg.find("CoalNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========时间===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("时间"); m_newObj[120] = ("│"); it = msg.find("DateTime"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====车牌号===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("车牌号"); m_newObj[120] = ("│"); it = msg.find("CarNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====转出煤场===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("转出煤场"); m_newObj[120] = ("│"); it = msg.find("OUTCoalYard"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====转入煤场===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("转入煤场"); m_newObj[120] = ("│"); it = msg.find("INCoalYard"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====装载单位===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("装载单位"); m_newObj[120] = ("│"); it = msg.find("Stevedor"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====承运单位===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("承运单位"); m_newObj[120] = ("│"); it = msg.find("Transport"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========毛重====================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("毛重"); m_newObj[120] = ("│"); it = msg.find("GrossWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[384] = ("│"); m_newObj[404] = ("吨"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========皮重====================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("皮重"); m_newObj[120] = ("│"); it = msg.find("TareWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[384] = ("│"); m_newObj[404] = ("吨"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========净重====================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("净重"); m_newObj[120] = ("│"); it = msg.find("SuttleWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[384] = ("│"); m_newObj[404] = ("吨"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========备注===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("备注"); m_newObj[120] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("└"); m_newObj[6] = ("┴"); m_newObj[23] = ("┘"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); } //北洋打印机打印绥阳大宗物资重磅票 void MsgHandler::Print5_2(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; int x = 40; int y = 0; int dx = 590; int dy = 850; char s[12]; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置打印区域 memcpy(s, &x, 2); memcpy(s + 2, &y, 2); memcpy(s + 4, &dx, 2); memcpy(s + 6, &dy, 2); m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); m_PrintData.insert(m_PrintData.end(), s, s+8); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); //打印 szTemp=ot::UTF8ToGB2312("国家电投集团"); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //打印名称 it = msg.find("TitleCorp"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()); } m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); szTemp=ot::UTF8ToGB2312("提货单"); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A, 0x0A}); //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //设置页模式 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); //=============================内容===================================== //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); //====票据号===================== m_newObj.clear(); m_newObj[15] = ("NO:"); it = msg.find("CoalNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====品种===================== m_newObj.clear(); m_newObj[15] = ("品种:"); it = msg.find("GoodsType"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========批号===================== m_newObj.clear(); m_newObj[15] = ("批号:"); it = msg.find("BatchNumber"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====司机===================== m_newObj.clear(); m_newObj[15] = ("司机:"); it = msg.find("Operator"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====车牌号===================== m_newObj.clear(); m_newObj[15] = ("车牌号:"); it = msg.find("CarNumber"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====供应商===================== m_newObj.clear(); m_newObj[15] = ("供应商:"); it = msg.find("Supplier"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====目的地===================== m_newObj.clear(); m_newObj[15] = ("目的地:"); it = msg.find("Destination"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====提货地===================== m_newObj.clear(); m_newObj[15] = ("提货地:"); m_newObj[160] = ("水泥分厂"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====毛重===================== m_newObj.clear(); m_newObj[15] = ("毛重(t):"); it = msg.find("GrossWeight"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====皮重===================== m_newObj.clear(); m_newObj[15] = ("皮重(t):"); it = msg.find("TareWeight"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====净重===================== m_newObj.clear(); m_newObj[15] = ("净重(t):"); it = msg.find("SuttleWeight"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====扣重===================== m_newObj.clear(); m_newObj[15] = ("扣重(t):"); it = msg.find("RockWeight"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====进厂时间===================== m_newObj.clear(); m_newObj[15] = ("进厂时间:"); it = msg.find("EnterTime"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====出厂时间===================== m_newObj.clear(); m_newObj[15] = ("出厂时间:"); it = msg.find("LeaveTime"); if(it != msg.end()) { m_newObj[160] = it->second; } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); } //北洋打印机提货单发货单 void MsgHandler::Print6_2(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; int x = 40; int y = 0; int dx = 590; int dy = 750; char s[12]; std::string title, title_corp; std::string sender, receiver; it = msg.find("Title"); if(it != msg.end()) { if(it->second == "提货单") { title = ot::UTF8ToGB2312("提货单"); it = msg.find("Supplier"); if(it != msg.end()) { sender = it->second; } it = msg.find("Customer"); if(it != msg.end()) { receiver = it->second; } } else { title = ot::UTF8ToGB2312("发货单"); it = msg.find("Supplier"); if(it != msg.end()) { receiver = it->second; } it = msg.find("Customer"); if(it != msg.end()) { sender = it->second; } } } it = msg.find("TitleCorp"); if(it != msg.end()) { title_corp = ot::UTF8ToGB2312(it->second.c_str()); } m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置打印区域 memcpy(s, &x, 2); memcpy(s + 2, &y, 2); memcpy(s + 4, &dx, 2); memcpy(s + 6, &dy, 2); m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); m_PrintData.insert(m_PrintData.end(), s, s+8); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); //打印标题 m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), title_corp.begin(), title_corp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), title.begin(), title.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //设置页模式 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); //=============================内容===================================== std::vector names ={"NO:", "规格", "车牌号", "收货单位", "供货单位", "开票时间", "验收人"}; std::vector items; it = msg.find("QueueID"); if(it != msg.end()) { items.push_back(it->second); } it = msg.find("GoodsType"); if(it != msg.end()) { items.push_back(it->second); } it = msg.find("CarNumber"); if(it != msg.end()) { items.push_back(it->second); } items.push_back(receiver); items.push_back(sender); it = msg.find("DateTime"); if(it != msg.end()) { items.push_back(it->second); } items.push_back(" "); //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); //顶框线 m_newObj.clear(); m_newObj[1] = ("┌"); m_newObj[23] = ("┐"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); for(int i = 0; i < names.size(); i++) { m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = names[i]; m_newObj[120] = ("│"); m_newObj[145] = items[i]; m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); } m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[120] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("备注"); m_newObj[120] = ("│"); m_newObj[280] = ("盖章处"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[120] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //底框线 m_newObj.clear(); m_newObj[1] = ("└"); m_newObj[6] = ("┴"); m_newObj[23] = ("┘"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); } //HS-K33打印排队票 void MsgHandler::Print1_3(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); //打印磅单 - 标题改为中电(普安)发电有限责任公司排队票 m_newObj.clear(); m_newObj[340] = ("中电(普安)发电有限责任公司排队票"); blTemp = BuildStringLine_HSK33(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x30, 0x00}); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); //设置左对齐(标题下面的内容全部靠左) m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //车牌号 m_newObj.clear(); m_newObj[0] = ("车牌号:"); it = msg.find("CarNumber"); if(it != msg.end() && !it->second.empty()) { m_newObj[12] = it->second; } else { m_newObj[12] = ("null"); } blTemp = BuildStringLine_HSK33(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 //时间 m_newObj.clear(); m_newObj[0] = ("时间:"); it = msg.find("DateTime"); if(it != msg.end() && !it->second.empty()) { m_newObj[8] = it->second; } else { m_newObj[8] = ("null"); } blTemp = BuildStringLine_HSK33(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 //排队号 m_newObj.clear(); m_newObj[0] = ("排队号:"); it = msg.find("QueueID"); if(it != msg.end() && !it->second.empty()) { m_newObj[10] = it->second; } else { m_newObj[10] = ("null"); } blTemp = BuildStringLine_HSK33(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 //供应商 m_newObj.clear(); m_newObj[0] = ("采样编码:"); it = msg.find("Supplier"); if(it != msg.end() && !it->second.empty()) { m_newObj[12] = it->second; } else { m_newObj[12] = ("null"); } blTemp = BuildStringLine_HSK33(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 //品种 m_newObj.clear(); m_newObj[0] = ("品 种:"); it = msg.find("GoodsType"); if(it != msg.end() && !it->second.empty()) { m_newObj[12] = it->second; } else { m_newObj[12] = ("null"); } blTemp = BuildStringLine_HSK33(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 //采样机号 m_newObj.clear(); m_newObj[0] = ("采样机:"); it = msg.find("sample_machine"); if(it != msg.end() && !it->second.empty()) { m_newObj[12] = it->second; } else { m_newObj[12] = ("null"); } blTemp = BuildStringLine_HSK33(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 //煤场 m_newObj.clear(); m_newObj[0] = ("煤 场:"); it = msg.find("CoalYard"); if(it != msg.end() && !it->second.empty()) { m_newObj[12] = it->second; } else { m_newObj[12] = (""); // 煤场缺省:冒号后无内容(不再打印 null) } blTemp = BuildStringLine_HSK33(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); } //HS-K33打印普安燃料轻磅票 void MsgHandler::Print2_3(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); //打印磅单 //打印抬头 it = msg.find("TitleCorp"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()); } m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); szTemp=ot::UTF8ToGB2312("燃料过磅单"); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //设置页模式 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); //设置左边空白量 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x3C, 0x00}); m_newObj.clear(); m_newObj[430] = ("单位:吨"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //加顶框 m_newObj.clear(); m_newObj[1] = ("┌"); m_newObj[6] = ("┬"); m_newObj[23] = ("┐"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====票据号===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("编 号"); m_newObj[120] = ("│"); it = msg.find("CoalNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========供应商===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("供应商"); m_newObj[120] = ("│"); it = msg.find("Supplier"); if (it != msg.end()) { if (it->second.length() > 24) { szTemp = it->second.substr(0, 24); m_newObj[145] = szTemp; m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[120] = ("│"); szTemp=it->second.substr(24, it->second.length()-24); m_newObj[145] = szTemp; m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); } else { m_newObj[145] = it->second; m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); } } m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========供应商识别名===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("供 应"); m_newObj[120] = ("│"); it = msg.find("SupplierTitle"); if (it != msg.end()) { if (it->second.length() > 24) { szTemp = it->second.substr(0, 24); m_newObj[145] = szTemp; m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("识别名"); m_newObj[120] = ("│"); szTemp=it->second.substr(24, it->second.length()-24); m_newObj[145] = szTemp; m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); } else { m_newObj[145] = it->second; m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("识别名"); m_newObj[120] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); } } m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┬"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====品种车牌===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("品 种"); m_newObj[120] = ("│"); it = msg.find("GoodsType"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[264] = ("│"); m_newObj[289] = ("车 牌"); m_newObj[383] = ("│"); it = msg.find("CarNumber"); if(it != msg.end()) { m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┴"); m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========时间===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("时 间"); m_newObj[120] = ("│"); it = msg.find("DateTime"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┬"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====毛重皮重===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("毛 重"); m_newObj[120] = ("│"); it = msg.find("GrossWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[264] = ("│"); m_newObj[289] = ("皮 重"); m_newObj[383] = ("│"); it = msg.find("TareWeight"); if(it != msg.end()) { m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====扣矸扣水===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("扣 矸"); m_newObj[120] = ("│"); it = msg.find("RockWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[264] = ("│"); m_newObj[289] = ("扣 水"); m_newObj[383] = ("│"); it = msg.find("WaterWeight"); if(it != msg.end()) { m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========扣杂\净重====================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("扣 杂"); m_newObj[120] = ("│"); it = msg.find("OtherWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[264] = ("│"); m_newObj[289] = ("净 重"); m_newObj[383] = ("│"); it = msg.find("SuttleWeight"); if(it != msg.end()) { m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("└"); m_newObj[6] = ("┴"); m_newObj[12] = ("┴"); m_newObj[17] = ("┴"); m_newObj[23] = ("┘"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置章位置 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x7C, 0x01}); m_PrintData.insert(m_PrintData.end(), {0x1C, 0x70, 0x01, 0x00}); //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); } //HS-K33打印转煤票 void MsgHandler::Print4_3(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); //打印转煤单 it = msg.find("TitleCorp"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("转煤单"); //转煤单 } m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); szTemp=ot::UTF8ToGB2312(" "); m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //设置页模式 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); //=============================开票时间===================================== //加顶框 m_newObj[1] = ("┌"); m_newObj[23] = ("┐"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====票据号===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("称重编号"); m_newObj[120] = ("│"); it = msg.find("CoalNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========时间===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("时间"); m_newObj[120] = ("│"); it = msg.find("DateTime"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====车牌号===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("车牌号"); m_newObj[120] = ("│"); it = msg.find("CarNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====品种===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("品 种"); m_newObj[120] = ("│"); it = msg.find("GoodsType"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====转出煤场===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("转出煤场"); m_newObj[120] = ("│"); it = msg.find("OUTCoalYard"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====转入煤场===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("转入煤场"); m_newObj[120] = ("│"); it = msg.find("INCoalYard"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========毛重====================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("毛重"); m_newObj[120] = ("│"); it = msg.find("GrossWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[384] = ("│"); m_newObj[404] = ("吨"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========皮重====================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("皮重"); m_newObj[120] = ("│"); it = msg.find("TareWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[384] = ("│"); m_newObj[404] = ("吨"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========净重====================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("净重"); m_newObj[120] = ("│"); it = msg.find("SuttleWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[384] = ("│"); m_newObj[404] = ("吨"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====磅号===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("磅号"); m_newObj[120] = ("│"); it = msg.find("DeviceName"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========备注===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("备注"); m_newObj[120] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("└"); m_newObj[6] = ("┴"); m_newObj[23] = ("┘"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); } //HS-K33打印配煤票 void MsgHandler::Print5_3(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); //打印配煤票 it = msg.find("CarNumber"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312(" "); // 配煤票 } m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); it = msg.find("Warning"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()); } m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61 ,0x01}); //票据号 it = msg.find("CoalNumber"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()); } m_PrintData.insert(m_PrintData.end(), {0x1D, 0x6B, 0x61, 0x08, 0x02, static_cast(szTemp.length()), static_cast(szTemp.length()>>8)}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); //设置居右 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x02}); it = msg.find("GrossWeightTime"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()); } m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //向前走纸行 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x64, 0x04}); //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); } //HS-K33打印灰磅票 void MsgHandler::Print6_3(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x0F}); //打印抬头 it = msg.find("TitleCorp"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312("国家电投集团"); } m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); it = msg.find("TitleCorp"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("提货单"); } m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //设置页模式 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); //换行 m_PrintData.insert(m_PrintData.end(), {0x0A}); //====票据号===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("No:"); m_newObj[120] = (" "); it = msg.find("CoalNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====品种===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("品 种:"); m_newObj[120] = (" "); it = msg.find("GoodsType"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====批号===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("批 号:"); m_newObj[120] = (" "); it = msg.find("BatchNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====司机===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("司 机:"); m_newObj[120] = (" "); it = msg.find("Operator"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====车牌号===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("车牌号:"); m_newObj[120] = (" "); it = msg.find("CarNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====客户===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("客 户:"); m_newObj[120] = (" "); it = msg.find("Supplier"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====目的地===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("目的地:"); m_newObj[120] = (" "); it = msg.find("Destination"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====提货地===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("提货地:"); m_newObj[120] = (" "); m_newObj[145] = ("水泥分厂"); m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========毛重====================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("毛重(t):"); m_newObj[120] = (" "); it = msg.find("GrossWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========皮重====================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("皮重(t):"); m_newObj[120] = (" "); it = msg.find("TareWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========净重====================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("净重(t):"); m_newObj[120] = (" "); it = msg.find("SuttleWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====扣重===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("扣重(t):"); m_newObj[120] = (" "); it = msg.find("RockWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========进厂时间===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("进厂时间:"); m_newObj[120] = (" "); it = msg.find("EnterTime"); if(it != msg.end()) { m_newObj[160] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========出厂时间===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("出厂时间:"); m_newObj[120] = (" "); it = msg.find("LeaveTime"); if(it != msg.end()) { m_newObj[160] = it->second; } m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = (" "); m_newObj[6] = (" "); m_newObj[23] = (" "); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========备注===================== m_newObj.clear(); m_newObj[1] = (" "); m_newObj[26] = ("备注"); m_newObj[120] = (" "); m_newObj[145] = (" "); m_newObj[528] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); } //HS-K33打印机打印黔西过磅票 void MsgHandler::Print8_3(const std::map& msg) { //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); //设置居中 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); //设置1号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); //打印磅单 //打印标题 it = msg.find("TitleCorp"); if(it != msg.end()) { szTemp = ot::UTF8ToGB2312(it->second.c_str()); } m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); szTemp = ot::UTF8ToGB2312("过磅单(出厂)"); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); //设置页模式 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); //设置左边空白量 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x3C, 0x00}); //加顶框 m_newObj.clear(); m_newObj[1] = ("┌"); m_newObj[6] = ("┬"); m_newObj[23] = ("┐"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====票据号===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("编号"); m_newObj[120] = ("│"); it = msg.find("CoalNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //=========收货单位===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("收货单位"); m_newObj[120] = ("│"); it = msg.find("Customer"); if (it != msg.end()) { if (it->second.length() > 24) { m_newObj[145] = it->second.substr(0, 24); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[120] = ("│"); m_newObj[145] = it->second.substr(24, it->second.length() - 24); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 } else { m_newObj[145] = it->second; m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 } } m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 //=========供货单位===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("供货单位"); m_newObj[120] = ("│"); it = msg.find("Supplier"); if (it != msg.end()) { if (it->second.length() > 24) { m_newObj[145] = it->second.substr(0, 24); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[120] = ("│"); m_newObj[145] = it->second.substr(24, it->second.length() - 24); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 } else { m_newObj[145] = it->second; m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 } } m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 //====品种===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("规格"); m_newObj[120] = ("│"); it = msg.find("GoodsType"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //====车牌===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("车牌"); m_newObj[120] = ("│"); it = msg.find("CarNumber"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[264] = ("│"); m_newObj[289] = ("操作员"); m_newObj[383] = ("│"); it = msg.find("Operator"); if(it != msg.end()) { m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┴"); m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 //====时间===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("时间"); m_newObj[120] = ("│"); it = msg.find("DateTime"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┬"); m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 //====毛重皮重===================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("毛重(吨)"); m_newObj[120] = ("│"); it = msg.find("GrossWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[264] = ("│"); m_newObj[289] = ("皮重(吨)"); m_newObj[383] = ("│"); it = msg.find("TareWeight"); if(it != msg.end()) { m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┼"); m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 //=========扣杂\净重====================== m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("净重(吨)"); m_newObj[120] = ("│"); it = msg.find("SuttleWeight"); if(it != msg.end()) { m_newObj[145] = it->second; } m_newObj[264] = ("│"); m_newObj[289] = ("扣重(吨)"); m_newObj[383] = ("│"); it = msg.find("RockWeight"); if(it != msg.end()) { m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 // 打印电子印章图片 bool e_seal = true; //ElectChapter; if(!e_seal) { m_newObj.clear(); m_newObj[1] = ("├"); m_newObj[6] = ("┼"); m_newObj[12] = ("┴"); m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[120] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[26] = ("备注盖章"); m_newObj[120] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("│"); m_newObj[120] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); } m_newObj.clear(); m_newObj[1] = ("└"); m_newObj[6] = ("┴"); m_newObj[23] = ("┘"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 it = msg.find("e_seal"); if(it != msg.end()) { m_newObj.clear(); m_newObj[26] = ("盖章:"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); // if(!PrintImage("image/qx-seal.bmp")) { // m_PrintData.append(EnterChar).append(EnterChar).append(EnterChar).append(EnterChar).append(EnterChar); // } } //打印、切纸 m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); }