|
|
#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("SampleID");
|
|
|
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("SampleID");
|
|
|
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();
|
|
|
it = msg.find("TitleCorp");
|
|
|
if(it != msg.end())
|
|
|
{
|
|
|
m_newObj[340] = it->second + ("排队票"); //排队票
|
|
|
}
|
|
|
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_newObj.clear();
|
|
|
m_newObj[10] = ("车牌号:");
|
|
|
it = msg.find("CarNumber");
|
|
|
if(it != msg.end())
|
|
|
{
|
|
|
m_newObj[190] = it->second;
|
|
|
}
|
|
|
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[600] = ("时间:");
|
|
|
it = msg.find("DateTime");
|
|
|
if(it != msg.end())
|
|
|
{
|
|
|
m_newObj[740] = it->second;
|
|
|
}
|
|
|
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[10] = ("排队号:");
|
|
|
it = msg.find("QueueID");
|
|
|
if(it != msg.end())
|
|
|
{
|
|
|
m_newObj[180] = it->second;
|
|
|
}
|
|
|
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[10] = ("供应商:");
|
|
|
it = msg.find("Supplier");
|
|
|
if(it != msg.end())
|
|
|
{
|
|
|
m_newObj[190] = it->second;
|
|
|
}
|
|
|
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[10] = ("品 种:");
|
|
|
it = msg.find("GoodsType");
|
|
|
if(it != msg.end())
|
|
|
{
|
|
|
m_newObj[190] = it->second;
|
|
|
}
|
|
|
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[10] = ("车道号:");
|
|
|
it = msg.find("VechileLaneNo");
|
|
|
if(it != msg.end())
|
|
|
{
|
|
|
m_newObj[190] = it->second;
|
|
|
}
|
|
|
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[10] = ("采样机:");
|
|
|
it = msg.find("SampleID");
|
|
|
if(it != msg.end())
|
|
|
{
|
|
|
m_newObj[190] = it->second;
|
|
|
}
|
|
|
blTemp = BuildStringLine_HSK33(m_newObj);
|
|
|
m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end());
|
|
|
m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行
|
|
|
|
|
|
it = msg.find("SuttleWeight");
|
|
|
if (it != msg.end())
|
|
|
{
|
|
|
//需要打印发运净重
|
|
|
//发运净重
|
|
|
m_newObj.clear();
|
|
|
m_newObj[10] = ("发运净重:");
|
|
|
m_newObj[190] = it->second;
|
|
|
m_newObj[250] = ("吨");
|
|
|
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});
|
|
|
} |