Commit 5f3adc7d by jackalone

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

parent 7c55a924
......@@ -6,7 +6,7 @@ FMPPrinter::FMPPrinter(ctkPluginContext *context)
_inited(false),
d_ptr(new FMPPrinterPrivate(this))
{
StartService();
}
void FMPPrinter::UninitService()
......@@ -20,10 +20,10 @@ void FMPPrinter::InitService()
d_func()->Init();
}
bool FMPPrinter::DoPrint(QString data)
bool FMPPrinter::DoPrint(QString data,QString strLabel)
{
Q_D(FMPPrinter);
return d->_DoPrint(data);
return d->_DoPrint(data,strLabel);
}
QString FMPPrinter::GetPrintName()
......
......@@ -16,7 +16,7 @@ public:
FMPPrinter(ctkPluginContext *context);
void InitService();
void UninitService();
bool DoPrint(QString data);
bool DoPrint(QString data,QString strLabel);
QString GetPrintName();
private:
......
......@@ -4,5 +4,11 @@
#define FMP_INIKEY_PRINTERNAME "Printer/Name"
#define FMP_INIKEY_PRINTERTYPE "Printer/Mode"
#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
......@@ -13,7 +13,7 @@ class FMPPrinterInterface : public FMPBaseInterface
{
public:
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;
int PostEvent(const QString &topic, const FMPProps &pps) { return FMP_NOIMPL; }
......
......@@ -24,7 +24,14 @@ int FMPPrinterPrivate::Init()
Q_Q(FMPPrinter);
if(!(q->_inited))
InitLogger();
InitDll();
if(InitDll())
{
QLOG_INFO() <<QString(GB2312ToUnicode("初始化打印机DLL成功"));
}
else
{
QLOG_INFO() <<QString(GB2312ToUnicode("初始化打印机DLL失败"));
}
q->_inited = true;
return FMP_SUCCESS;
......@@ -46,17 +53,29 @@ int FMPPrinterPrivate::Uninit()
return FMP_SUCCESS;
}
bool FMPPrinterPrivate::_DoPrint(QString data)
bool FMPPrinterPrivate::_DoPrint(QString data,QString strLabel="")
{
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("初始化打印机配置成功"));
}
else {
return false;
}
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)
{
case 0:
......@@ -64,10 +83,32 @@ bool FMPPrinterPrivate::_DoPrint(QString data)
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();
strcpy(m_data,tmpData.data());
QLOG_INFO() <<"ready print data is"<<m_data;
FM_PrintData(m_data);
if(!strLabel.isEmpty())
{
QByteArray labelData = strLabel.toLocal8Bit();
strcpy(m_label,labelData.data());
FM_printTscData(m_label);
}
FM_unloaddll();
return 1;
}
......@@ -75,16 +116,37 @@ bool FMPPrinterPrivate::_DoPrint(QString data)
case 2:
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();
strcpy(m_data,tmpData.data());
QLOG_INFO() <<"ready print data is"<<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();
return 1;
}
else if(m_print.m_PrintSize == 56)
{
;
}
break;
default:
......@@ -113,9 +175,32 @@ QString FMPPrinterPrivate::_GetPrintName()
m_print.printname = _settings->GetString(FMP_INIKEY_PRINTERNAME);
m_print.m_PrintType = _settings->GetInt(FMP_INIKEY_PRINTERTYPE);
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;
}
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)
{
FMP_INFO() << "printname is ok"<<printername;
......
......@@ -11,9 +11,12 @@ typedef struct
QString m_parall; //并口名字
QString m_Usb;// usb的名字
QString m_level; //日志的级别设定 默认
QString m_Ip ;
QString m_printerLabel;
int m_PrintType; //打印的某种样式
int m_PrintSize; //打印的纸张设定
int type;
int m_nDays; //删除日志的天数
} PrintClass,*pPrintclass;
class FMPPrinterPrivate:public QObject
......@@ -26,9 +29,10 @@ public:
int Init();
int Uninit();
private:
bool _DoPrint(QString data);
bool _DoPrint(QString data,QString strLabel);
QString _GetPrintName();
bool GetInfo(QString &printername,QString data);
QString SendIniData();
public:
FMPPrinter *q_ptr;
PrintClass m_print;
......
......@@ -6,7 +6,9 @@ typedef void (*PrintData)(char data[]);
typedef void (*Print2dData)(char data[]);
typedef void (*unloaddll)(void);
typedef bool (*LoadAddress)(void);
typedef void (*Initconfigini)(char data[]);
typedef void (*printTscData)(char data[]);
typedef void (*printBalance)(char data[]);
#endif // EXTERNALINTERFACE_H
......
......@@ -7,11 +7,14 @@ using namespace QsLogging;
#include <QCoreApplication>
#include <QTextCodec>
inItConfig FM_inItConfig ;
PrintData FM_PrintData ;
Print2dData FM_Print2dData;
unloaddll FM_unloaddll ;
inItConfig FM_inItConfig =0 ;
PrintData FM_PrintData = 0 ;
Print2dData FM_Print2dData = 0;
unloaddll FM_unloaddll =0 ;
LoadAddress FM_LoadAddress = 0 ;
Initconfigini FM_Initconfigini =0;
printTscData FM_printTscData=0;
printBalance FM_printBalance = 0;
void InitLogger();
QString getdata();
bool InitDll();
......@@ -114,6 +117,39 @@ bool InitDll()
QLOG_INFO() << QString(GB2312ToUnicode("打印动态库卸载失败"));
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
{
......
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