|
@@ -412,7 +412,8 @@ int CPosPrinter::GetDevicePath(LPGUID lpGuid, int usbType)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
- *返回打印机的类型, 1:普通热敏打印机 2:标签打印机
|
|
|
|
|
|
|
+ *返回打印机的类型, 1:普通热敏打印机 2:标签打印机 3:发票打印机
|
|
|
|
|
+ *这里因为不同厂家对vid pid定义不一样,有时候会出现佳博的标签打印机的vid和pid,在别的品牌上变成了热敏打印机,这里如果排除掉别的品牌的热敏打印机就无法打印了,所以这里不能轻易排除
|
|
|
**/
|
|
**/
|
|
|
int CPosPrinter::GetPrinterType(wstring vid, wstring pid)
|
|
int CPosPrinter::GetPrinterType(wstring vid, wstring pid)
|
|
|
{
|
|
{
|
|
@@ -421,6 +422,11 @@ int CPosPrinter::GetPrinterType(wstring vid, wstring pid)
|
|
|
//佳博标签打印机
|
|
//佳博标签打印机
|
|
|
return 2;
|
|
return 2;
|
|
|
}
|
|
}
|
|
|
|
|
+ else if (vid == L"XXX" && pid == L"XXX")
|
|
|
|
|
+ {
|
|
|
|
|
+ //发票打印机
|
|
|
|
|
+ return 3;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
@@ -616,6 +622,13 @@ void CPosPrinter::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
|
|
|
if(order.m_is_selftake != "1")
|
|
if(order.m_is_selftake != "1")
|
|
|
{
|
|
{
|
|
|
string name = "姓名:" + CLewaimaiString::UTF8ToANSI(order.m_customer_name);
|
|
string name = "姓名:" + CLewaimaiString::UTF8ToANSI(order.m_customer_name);
|
|
|
|
|
+
|
|
|
|
|
+ //把下单次数也一起打印
|
|
|
|
|
+ if (order.m_showordernum == "1")
|
|
|
|
|
+ {
|
|
|
|
|
+ name += "(第 " + CLewaimaiString::UTF8ToANSI(order.m_customer_order_total) + " 次下单)";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
POS_TextOut(name, false, setting_printer_name_big);
|
|
POS_TextOut(name, false, setting_printer_name_big);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
}
|
|
}
|
|
@@ -1075,14 +1088,14 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
|
|
|
|
|
if(order.m_is_selftake == "1")
|
|
if(order.m_is_selftake == "1")
|
|
|
{
|
|
{
|
|
|
- POS_TextOut(order_type + "到店自取订单", false, false, 1);
|
|
|
|
|
|
|
+ POS_TextOut(order_type + "到店自取订单", false, true, 1);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- POS_TextOut(order_type + "外卖订单", false, false, 1);
|
|
|
|
|
|
|
+ POS_TextOut(order_type + "外卖订单", false, true, 1);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
@@ -1094,7 +1107,7 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
for(std::vector<CWaimaiOrderField>::iterator it = order.m_order_field.begin(); it != order.m_order_field.end() - 1; it++)
|
|
for(std::vector<CWaimaiOrderField>::iterator it = order.m_order_field.begin(); it != order.m_order_field.end() - 1; it++)
|
|
|
{
|
|
{
|
|
|
string order_field = CLewaimaiString::UTF8ToANSI((*it).name) + ":" + CLewaimaiString::UTF8ToANSI((*it).value);
|
|
string order_field = CLewaimaiString::UTF8ToANSI((*it).name) + ":" + CLewaimaiString::UTF8ToANSI((*it).value);
|
|
|
- POS_TextOut(order_field, false, false, 0);
|
|
|
|
|
|
|
+ POS_TextOut(order_field, false, true, 0);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1117,11 +1130,11 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
//商品标题
|
|
//商品标题
|
|
|
if(guige == "58")
|
|
if(guige == "58")
|
|
|
{
|
|
{
|
|
|
- POS_TextOut("商品 单价 数量 金额");
|
|
|
|
|
|
|
+ POS_TextOut("商品 单价 数量 金额", false, true);
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- POS_TextOut("商品 单价 数量 金额");
|
|
|
|
|
|
|
+ POS_TextOut("商品 单价 数量 金额", false, true);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
@@ -1164,12 +1177,12 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
std::string quantityShow = HandleFoodQuantity(quantity, nGuige);
|
|
std::string quantityShow = HandleFoodQuantity(quantity, nGuige);
|
|
|
std::string priceTotalShow = HandleFoodTotalPrice(food_total_price, nGuige);
|
|
std::string priceTotalShow = HandleFoodTotalPrice(food_total_price, nGuige);
|
|
|
std::string firstLineShow = firstLine + priceShow + quantityShow + priceTotalShow;
|
|
std::string firstLineShow = firstLine + priceShow + quantityShow + priceTotalShow;
|
|
|
- POS_TextOut(firstLineShow, false, false, 0);
|
|
|
|
|
|
|
+ POS_TextOut(firstLineShow, false, true, 0);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
|
|
|
for(std::vector<string>::iterator it = m_names.begin() + 1; it != m_names.end(); it++)
|
|
for(std::vector<string>::iterator it = m_names.begin() + 1; it != m_names.end(); it++)
|
|
|
{
|
|
{
|
|
|
- POS_TextOut((*it), false, false, 0);
|
|
|
|
|
|
|
+ POS_TextOut((*it), false, true, 0);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1179,7 +1192,7 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
{
|
|
{
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
string address = "顾客备注:" + CLewaimaiString::UTF8ToANSI(order.m_memo);
|
|
string address = "顾客备注:" + CLewaimaiString::UTF8ToANSI(order.m_memo);
|
|
|
- POS_TextOut(address, false, false, 0);
|
|
|
|
|
|
|
+ POS_TextOut(address, false, true, 0);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1214,14 +1227,14 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
|
|
|
|
|
if(order.m_is_selftake == "1")
|
|
if(order.m_is_selftake == "1")
|
|
|
{
|
|
{
|
|
|
- POS_TextOut(order_type + "到店自取订单", false, false, 1);
|
|
|
|
|
|
|
+ POS_TextOut(order_type + "到店自取订单", false, true, 1);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- POS_TextOut(order_type + "外卖订单", false, false, 1);
|
|
|
|
|
|
|
+ POS_TextOut(order_type + "外卖订单", false, true, 1);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
@@ -1233,7 +1246,7 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
for(std::vector<CWaimaiOrderField>::iterator it = order.m_order_field.begin(); it != order.m_order_field.end() - 1; it++)
|
|
for(std::vector<CWaimaiOrderField>::iterator it = order.m_order_field.begin(); it != order.m_order_field.end() - 1; it++)
|
|
|
{
|
|
{
|
|
|
string order_field = CLewaimaiString::UTF8ToANSI((*it).name) + ":" + CLewaimaiString::UTF8ToANSI((*it).value);
|
|
string order_field = CLewaimaiString::UTF8ToANSI((*it).name) + ":" + CLewaimaiString::UTF8ToANSI((*it).value);
|
|
|
- POS_TextOut(order_field, false, false, 0);
|
|
|
|
|
|
|
+ POS_TextOut(order_field, false, true, 0);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1256,11 +1269,11 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
//商品标题
|
|
//商品标题
|
|
|
if(guige == "58")
|
|
if(guige == "58")
|
|
|
{
|
|
{
|
|
|
- POS_TextOut("商品 单价 数量 金额");
|
|
|
|
|
|
|
+ POS_TextOut("商品 单价 数量 金额", false, true);
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- POS_TextOut("商品 单价 数量 金额");
|
|
|
|
|
|
|
+ POS_TextOut("商品 单价 数量 金额", false, true);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
@@ -1288,12 +1301,12 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
std::string quantityShow = HandleFoodQuantity(quantity, 2);
|
|
std::string quantityShow = HandleFoodQuantity(quantity, 2);
|
|
|
std::string priceTotalShow = HandleFoodTotalPrice(food_total_price, 2);
|
|
std::string priceTotalShow = HandleFoodTotalPrice(food_total_price, 2);
|
|
|
std::string firstLineShow = firstLine + priceShow + quantityShow + priceTotalShow;
|
|
std::string firstLineShow = firstLine + priceShow + quantityShow + priceTotalShow;
|
|
|
- POS_TextOut(firstLineShow, false, false, 0);
|
|
|
|
|
|
|
+ POS_TextOut(firstLineShow, false, true, 0);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
|
|
|
|
|
for(std::vector<string>::iterator it = m_names.begin() + 1; it != m_names.end(); it++)
|
|
for(std::vector<string>::iterator it = m_names.begin() + 1; it != m_names.end(); it++)
|
|
|
{
|
|
{
|
|
|
- POS_TextOut((*it), false, false, 0);
|
|
|
|
|
|
|
+ POS_TextOut((*it), false, true, 0);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1302,7 +1315,7 @@ void CPosPrinter::PrintWaimaiOrderChufang(CWaimaiOrder& order)
|
|
|
{
|
|
{
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
string address = "顾客备注:" + CLewaimaiString::UTF8ToANSI(order.m_memo);
|
|
string address = "顾客备注:" + CLewaimaiString::UTF8ToANSI(order.m_memo);
|
|
|
- POS_TextOut(address, false, false, 0);
|
|
|
|
|
|
|
+ POS_TextOut(address, false, true, 0);
|
|
|
POS_FeedLine();
|
|
POS_FeedLine();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1382,6 +1395,9 @@ int CPosPrinter::WriteBuf(const unsigned char* buf, int len)
|
|
|
**/
|
|
**/
|
|
|
bool CPosPrinter::PortTest(HANDLE hPort)
|
|
bool CPosPrinter::PortTest(HANDLE hPort)
|
|
|
{
|
|
{
|
|
|
|
|
+ //这里的话目前USB、串口、并口用的都是同步读写模式,有的打印机(比如一些发票打印机)CreateFile会成功,但是WriteFile会一直阻塞卡着,如果检测的话,
|
|
|
|
|
+ //在这里会一直卡住,因此这里的检测就不检测了,默认所有的都是连通的
|
|
|
|
|
+ //因此,对于智能识别模式,可能会出现无法打印(因为被某些usb打印设备阻塞),这种情况就只能手动选择USB模式,然后重新启动软件
|
|
|
return true;
|
|
return true;
|
|
|
|
|
|
|
|
//标签打印机的查询状态指令
|
|
//标签打印机的查询状态指令
|