Commit 5f3adc7d by jackalone

增加标签打印的功能,添加部分函数区别不同的样式

parent 7c55a924
...@@ -6,7 +6,7 @@ FMPPrinter::FMPPrinter(ctkPluginContext *context) ...@@ -6,7 +6,7 @@ FMPPrinter::FMPPrinter(ctkPluginContext *context)
_inited(false), _inited(false),
d_ptr(new FMPPrinterPrivate(this)) d_ptr(new FMPPrinterPrivate(this))
{ {
StartService();
} }
void FMPPrinter::UninitService() void FMPPrinter::UninitService()
...@@ -20,10 +20,10 @@ void FMPPrinter::InitService() ...@@ -20,10 +20,10 @@ void FMPPrinter::InitService()
d_func()->Init(); d_func()->Init();
} }
bool FMPPrinter::DoPrint(QString data) bool FMPPrinter::DoPrint(QString data,QString strLabel)
{ {
Q_D(FMPPrinter); Q_D(FMPPrinter);
return d->_DoPrint(data); return d->_DoPrint(data,strLabel);
} }
QString FMPPrinter::GetPrintName() QString FMPPrinter::GetPrintName()
......
...@@ -16,7 +16,7 @@ public: ...@@ -16,7 +16,7 @@ public:
FMPPrinter(ctkPluginContext *context); FMPPrinter(ctkPluginContext *context);
void InitService(); void InitService();
void UninitService(); void UninitService();
bool DoPrint(QString data); bool DoPrint(QString data,QString strLabel);
QString GetPrintName(); QString GetPrintName();
private: private:
......
...@@ -4,5 +4,11 @@ ...@@ -4,5 +4,11 @@
#define FMP_INIKEY_PRINTERNAME "Printer/Name" #define FMP_INIKEY_PRINTERNAME "Printer/Name"
#define FMP_INIKEY_PRINTERTYPE "Printer/Mode" #define FMP_INIKEY_PRINTERTYPE "Printer/Mode"
#define FMP_INIKEY_PRINTERSIZE "Printer/PaperWidth" #define FMP_INIKEY_PRINTERSIZE "Printer/PaperWidth"
#define FMP_INIKEY_PRINTERLEVLEL "Printer/Levlel"
#define FMP_INIKEY_PRINTERTYPE2 "Printer/Type"
#define FMP_INIKEY_PRINTERUSB "Printer/usb"
#define FMP_INIKEY_PRINTERPARALL "Printer/parallel"
#define FMP_INIKEY_PRINTERNET "Printer/ip"
#define FMP_INIKEY_PRINTERLABEL "Printer/PrintLabel"
#define FMP_INIKEY_LOGDAYS "Printer/LogDays"
#endif // FMP_PRINTER_DEF_H #endif // FMP_PRINTER_DEF_H
...@@ -13,7 +13,7 @@ class FMPPrinterInterface : public FMPBaseInterface ...@@ -13,7 +13,7 @@ class FMPPrinterInterface : public FMPBaseInterface
{ {
public: public:
explicit FMPPrinterInterface(ctkPluginContext *ctx) : FMPBaseInterface(), _ctx(ctx) {} explicit FMPPrinterInterface(ctkPluginContext *ctx) : FMPBaseInterface(), _ctx(ctx) {}
virtual bool DoPrint(QString data)=0; virtual bool DoPrint(QString data,QString strLabel)=0;
virtual QString GetPrintName()=0; virtual QString GetPrintName()=0;
int PostEvent(const QString &topic, const FMPProps &pps) { return FMP_NOIMPL; } int PostEvent(const QString &topic, const FMPProps &pps) { return FMP_NOIMPL; }
......
...@@ -24,7 +24,14 @@ int FMPPrinterPrivate::Init() ...@@ -24,7 +24,14 @@ int FMPPrinterPrivate::Init()
Q_Q(FMPPrinter); Q_Q(FMPPrinter);
if(!(q->_inited)) if(!(q->_inited))
InitLogger(); InitLogger();
InitDll(); if(InitDll())
{
QLOG_INFO() <<QString(GB2312ToUnicode("初始化打印机DLL成功"));
}
else
{
QLOG_INFO() <<QString(GB2312ToUnicode("初始化打印机DLL失败"));
}
q->_inited = true; q->_inited = true;
return FMP_SUCCESS; return FMP_SUCCESS;
...@@ -46,17 +53,29 @@ int FMPPrinterPrivate::Uninit() ...@@ -46,17 +53,29 @@ int FMPPrinterPrivate::Uninit()
return FMP_SUCCESS; return FMP_SUCCESS;
} }
bool FMPPrinterPrivate::_DoPrint(QString data) bool FMPPrinterPrivate::_DoPrint(QString data,QString strLabel="")
{ {
QLOG_INFO() <<"receive data is"<<data; QLOG_INFO() <<"receive data is"<<data;
if(FM_LoadAddress && FM_LoadAddress() && FM_inItConfig()) { char m_dataini[128]={0};
QByteArray tmpData = SendIniData().toLocal8Bit();
strcpy(m_dataini,tmpData.data());
if(FM_LoadAddress())
{
QLOG_INFO() <<QString(GB2312ToUnicode("初始化接口函数成功"));
}
else{
return 0;
}
FM_Initconfigini(m_dataini);
QLOG_INFO() <<QString(GB2312ToUnicode("DLL 读取ini配置文件完成"));
if( FM_inItConfig()) {
QLOG_INFO() <<QString(GB2312ToUnicode("初始化打印机配置成功")); QLOG_INFO() <<QString(GB2312ToUnicode("初始化打印机配置成功"));
} }
else { else {
return false; return false;
} }
QLOG_INFO() <<"receive data is"<<data; QLOG_INFO() <<"receive data is"<<data;
char m_data[2048]={0}; char m_data[2048]={0};char m_label[1024]={0};
switch (m_print.m_PrintType) switch (m_print.m_PrintType)
{ {
case 0: case 0:
...@@ -64,10 +83,32 @@ bool FMPPrinterPrivate::_DoPrint(QString data) ...@@ -64,10 +83,32 @@ bool FMPPrinterPrivate::_DoPrint(QString data)
if(m_print.m_PrintSize == 58) if(m_print.m_PrintSize == 58)
{ {
if(!strLabel.compare("balance"))
{
QLOG_INFO() <<"ready balance data 58 is"<<m_data;
QByteArray tmpData = data.toLocal8Bit();
strcpy(m_data,tmpData.data());
FM_printBalance(m_data);
FM_unloaddll();
return 1;
}
if(data.isEmpty())
{
QLOG_INFO() <<"ready e data isEmpty ";
return 0;
}
QByteArray tmpData = data.toLocal8Bit(); QByteArray tmpData = data.toLocal8Bit();
strcpy(m_data,tmpData.data()); strcpy(m_data,tmpData.data());
QLOG_INFO() <<"ready print data is"<<m_data; QLOG_INFO() <<"ready print data is"<<m_data;
FM_PrintData(m_data); FM_PrintData(m_data);
if(!strLabel.isEmpty())
{
QByteArray labelData = strLabel.toLocal8Bit();
strcpy(m_label,labelData.data());
FM_printTscData(m_label);
}
FM_unloaddll(); FM_unloaddll();
return 1; return 1;
} }
...@@ -75,16 +116,37 @@ bool FMPPrinterPrivate::_DoPrint(QString data) ...@@ -75,16 +116,37 @@ bool FMPPrinterPrivate::_DoPrint(QString data)
case 2: case 2:
if(m_print.m_PrintSize == 80) if(m_print.m_PrintSize == 80)
{ {
if(!strLabel.compare("balance"))
{
QLOG_INFO() <<"ready balance data is"<<m_data;
QByteArray tmpData = data.toLocal8Bit();
strcpy(m_data,tmpData.data());
FM_printBalance(m_data);
FM_unloaddll();
return 1;
}
if(data.isEmpty())
{
QLOG_INFO() <<"ready e data isEmpty ";
return 0;
}
QByteArray tmpData = data.toLocal8Bit(); QByteArray tmpData = data.toLocal8Bit();
strcpy(m_data,tmpData.data()); strcpy(m_data,tmpData.data());
QLOG_INFO() <<"ready print data is"<<m_data; QLOG_INFO() <<"ready print data is"<<m_data;
FM_PrintData(m_data); FM_PrintData(m_data);
if(!strLabel.isEmpty())
{
QLOG_INFO() <<"ready strLabel data is"<<m_data;
QByteArray labelData = strLabel.toLocal8Bit();
strcpy(m_label,labelData.data());
FM_printTscData(m_label);
}
FM_unloaddll(); FM_unloaddll();
return 1; return 1;
} }
else if(m_print.m_PrintSize == 56) else if(m_print.m_PrintSize == 56)
{ {
;
} }
break; break;
default: default:
...@@ -113,9 +175,32 @@ QString FMPPrinterPrivate::_GetPrintName() ...@@ -113,9 +175,32 @@ QString FMPPrinterPrivate::_GetPrintName()
m_print.printname = _settings->GetString(FMP_INIKEY_PRINTERNAME); m_print.printname = _settings->GetString(FMP_INIKEY_PRINTERNAME);
m_print.m_PrintType = _settings->GetInt(FMP_INIKEY_PRINTERTYPE); m_print.m_PrintType = _settings->GetInt(FMP_INIKEY_PRINTERTYPE);
m_print.m_PrintSize = _settings->GetInt(FMP_INIKEY_PRINTERSIZE); m_print.m_PrintSize = _settings->GetInt(FMP_INIKEY_PRINTERSIZE);
m_print.m_level = _settings->GetString(FMP_INIKEY_PRINTERLEVLEL);
m_print.m_parall = _settings->GetString(FMP_INIKEY_PRINTERPARALL);
m_print.type = _settings->GetInt(FMP_INIKEY_PRINTERTYPE2);
m_print.m_Usb = _settings->GetString(FMP_INIKEY_PRINTERUSB);
m_print.m_Ip = _settings->GetString(FMP_INIKEY_PRINTERNET);
m_print.m_printerLabel = _settings->GetString(FMP_INIKEY_PRINTERLABEL);
m_print.m_nDays = _settings->GetInt(FMP_INIKEY_LOGDAYS);
return m_print.printname; return m_print.printname;
} }
QString FMPPrinterPrivate::SendIniData()
{
QString m_print_ini = "";
m_print_ini=((m_print.printname=="")?("XP-80C"):(m_print.printname)).append("|")
.append(((QString::number(m_print.m_PrintType,10)=="")?("1"):QString::number(m_print.m_PrintType,10))).append("|")
.append(((QString::number(m_print.m_PrintSize,10)=="")?("56"):QString::number(m_print.m_PrintSize,10))).append("|")
.append(m_print.m_level==""?("ALL"):m_print.m_level).append("|")
.append(m_print.m_parall==""?("LPT1"):m_print.m_parall).append("|")
.append(((QString::number(m_print.type,10)=="")?("4"):QString::number(m_print.type,10))).append("|")
.append(m_print.m_Usb==""?"USB-0":m_print.m_Usb).append("|")
.append(m_print.m_Ip==""?"127.0.0.1":m_print.m_Ip).append("|")
.append(m_print.m_printerLabel==""?"Gprinter 2120TF":m_print.m_printerLabel).append("|")
.append((QString::number(m_print.m_nDays,10)=="")?("10"):QString::number(m_print.m_nDays,10)).append("|");
return m_print_ini;
}
bool FMPPrinterPrivate::GetInfo(QString &printername,QString data) bool FMPPrinterPrivate::GetInfo(QString &printername,QString data)
{ {
FMP_INFO() << "printname is ok"<<printername; FMP_INFO() << "printname is ok"<<printername;
......
...@@ -11,9 +11,12 @@ typedef struct ...@@ -11,9 +11,12 @@ typedef struct
QString m_parall; //并口名字 QString m_parall; //并口名字
QString m_Usb;// usb的名字 QString m_Usb;// usb的名字
QString m_level; //日志的级别设定 默认 QString m_level; //日志的级别设定 默认
QString m_Ip ;
QString m_printerLabel;
int m_PrintType; //打印的某种样式 int m_PrintType; //打印的某种样式
int m_PrintSize; //打印的纸张设定 int m_PrintSize; //打印的纸张设定
int type; int type;
int m_nDays; //删除日志的天数
} PrintClass,*pPrintclass; } PrintClass,*pPrintclass;
class FMPPrinterPrivate:public QObject class FMPPrinterPrivate:public QObject
...@@ -26,9 +29,10 @@ public: ...@@ -26,9 +29,10 @@ public:
int Init(); int Init();
int Uninit(); int Uninit();
private: private:
bool _DoPrint(QString data); bool _DoPrint(QString data,QString strLabel);
QString _GetPrintName(); QString _GetPrintName();
bool GetInfo(QString &printername,QString data); bool GetInfo(QString &printername,QString data);
QString SendIniData();
public: public:
FMPPrinter *q_ptr; FMPPrinter *q_ptr;
PrintClass m_print; PrintClass m_print;
......
...@@ -6,7 +6,9 @@ typedef void (*PrintData)(char data[]); ...@@ -6,7 +6,9 @@ typedef void (*PrintData)(char data[]);
typedef void (*Print2dData)(char data[]); typedef void (*Print2dData)(char data[]);
typedef void (*unloaddll)(void); typedef void (*unloaddll)(void);
typedef bool (*LoadAddress)(void); typedef bool (*LoadAddress)(void);
typedef void (*Initconfigini)(char data[]);
typedef void (*printTscData)(char data[]);
typedef void (*printBalance)(char data[]);
#endif // EXTERNALINTERFACE_H #endif // EXTERNALINTERFACE_H
......
...@@ -7,11 +7,14 @@ using namespace QsLogging; ...@@ -7,11 +7,14 @@ using namespace QsLogging;
#include <QCoreApplication> #include <QCoreApplication>
#include <QTextCodec> #include <QTextCodec>
inItConfig FM_inItConfig ; inItConfig FM_inItConfig =0 ;
PrintData FM_PrintData ; PrintData FM_PrintData = 0 ;
Print2dData FM_Print2dData; Print2dData FM_Print2dData = 0;
unloaddll FM_unloaddll ; unloaddll FM_unloaddll =0 ;
LoadAddress FM_LoadAddress = 0 ; LoadAddress FM_LoadAddress = 0 ;
Initconfigini FM_Initconfigini =0;
printTscData FM_printTscData=0;
printBalance FM_printBalance = 0;
void InitLogger(); void InitLogger();
QString getdata(); QString getdata();
bool InitDll(); bool InitDll();
...@@ -114,6 +117,39 @@ bool InitDll() ...@@ -114,6 +117,39 @@ bool InitDll()
QLOG_INFO() << QString(GB2312ToUnicode("打印动态库卸载失败")); QLOG_INFO() << QString(GB2312ToUnicode("打印动态库卸载失败"));
return 0; return 0;
} }
FM_Initconfigini = (Initconfigini)printlib.resolve("Initconfigini");
if(FM_Initconfigini)
{
QLOG_INFO() << QString(GB2312ToUnicode("打印初始化ini成功"));
}
else
{
QLOG_INFO() << QString(GB2312ToUnicode("打印初始化ini失败"));
return 0;
}
FM_printTscData = (printTscData)printlib.resolve("printTscData");
if(FM_printTscData)
{
QLOG_INFO() << QString(GB2312ToUnicode("初始化标签打印机成功"));
}
else
{
QLOG_INFO() << QString(GB2312ToUnicode("初始化标签打印机失败"));
return 0;
}
FM_printBalance = (printBalance)printlib.resolve("printBalance");
if(FM_printBalance)
{
QLOG_INFO() << QString(GB2312ToUnicode("初始化打印结算成功"));
}
else
{
QLOG_INFO() << QString(GB2312ToUnicode("初始化打印结算失败"));
return 0;
}
} }
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment