You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4444 lines
134 KiB
C++

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include <iostream>
#include <iomanip>
#include <unistd.h>
#include <sys/ioctl.h>
#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<uint8_t>& 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<uint8_t>& 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<uint8_t>& 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<uint8_t>& 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<std::string, std::string>& msg)
{
EncodeMsg(msg);
SendDeviceMsg(m_PrintData);
}
void MsgHandler::EncodeMsg(const std::map<std::string, std::string>& 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<char> MsgHandler::BuildLine(int m_max, const std::map<int, std::string>& PointList, int no_line_min, int no_line_max)
{
std::vector<char> m_ba;
for (int i=1;i<m_max;i++)
{
auto it = PointList.find(i);
std::string szTemp;
if (it != PointList.end())
{
szTemp=ot::UTF8ToGB2312(it->second.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<char> MsgHandler::BuildStringLine(std::map<int, std::string>& PointList)
{
std::vector<char> 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<char> MsgHandler::BuildStringLine_HSK33(std::map<int, std::string>& PointList)
{
std::vector<char> 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<uint8_t>& 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<uint8_t>& 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));
}
//指定字符串的位置、字体、高度、宽度、字符间距以及字符和字符串
/// <summary>
/// 清除本命令定义的格式应使用页面格式清除指令(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<uint8_t>& 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));
}
//为使用字符串格式设置命令定义的字符串赋以内容。
/// <summary>
/// 为使用字符串格式设置命令定义的字符串赋以内容。
/// 新定义将覆盖以前输出映像缓冲区中的内容。
/// 因此可不重新定义格式仅重新定义字符串内容。旧的即以前定义的字
/// 符串内容将被删除,然后生成新字符串的内容映像。
/// 页面格式清除指令(ESC C)清除本命令定义的内容。
/// 清除输出映像缓冲区指令(ESC X)清除本命令定义的内容。
/// n1n2: 字符串编号
/// a1a2……an: 打印字符串内容(最多100个字符/50个汉字)
/// </summary>
/// <param name="n1n2">字符串编号</param>
/// <param name="str">打印字符串内容(最多100个字符/50个汉字)</param>
void MsgHandler::Page_ESCRC(std::vector<uint8_t>& 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;i<len;)
{
//发特定长度
ct = len - i;
if (ct>8)
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<uint8_t>& 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;i<bmpsize;)
{
//特发长度
ct = bmpsize - i;
if (ct>8)
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<uint8_t>& Data)
{
//打印并出纸
Data.insert(Data.end(), {0x1B, 'B' ,0x0A, 0x00});
}
//结束
void MsgHandler::Page_End(std::vector<uint8_t>& 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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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<std::string, std::string>& msg)
{
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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;i<m_lines;i++)
{
szTemp=it->second.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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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<std::string> names ={"NO", "规格", "车牌号", "收货单位", "供货单位", "开票时间", "验收人"};
std::vector<std::string> 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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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<uint8_t>(szTemp.length()), static_cast<uint8_t>(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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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<std::string, std::string>& msg)
{
//这里组装打印输出内容
std::string szTemp;
std::map<std::string, std::string>::const_iterator it;
std::vector<char> blTemp;
std::map<int, std::string> 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});
}