diff --git a/CPF_Cef/Common/ChunkedUpload.cs b/CPF_Cef/Common/ChunkedUpload.cs
index 935c3c2..3480341 100644
--- a/CPF_Cef/Common/ChunkedUpload.cs
+++ b/CPF_Cef/Common/ChunkedUpload.cs
@@ -98,7 +98,7 @@ namespace AksWebBrowser.Common
try
{
var client = new HttpClient();
- var request = new HttpRequestMessage(HttpMethod.Post, "http://127.0.0.1:9399/device");
+ var request = new HttpRequestMessage(HttpMethod.Post, Parame.signUrl);
var content = new StringContent("{\r\n command: \"sign\",\r\n command_num: 111,\r\n data: {\r\n operation: \"open\",\r\n operation_code: 1,\r\n parameters: {\r\n data_type: 1,\r\n title_name: \"\",\r\n }\r\n }\r\n }", null, "text/plain");
request.Content = content;
var response = await client.SendAsync(request);
diff --git a/CPF_Cef/Devices/IDCard.cs b/CPF_Cef/Devices/IDCard.cs
index 04ea872..bcfcb07 100644
--- a/CPF_Cef/Devices/IDCard.cs
+++ b/CPF_Cef/Devices/IDCard.cs
@@ -57,8 +57,8 @@ namespace AksWebBrowser.Devices
status = LibClass.ParseIDCardPic(PHMsg, 1024, 3, FileName);
if (status == 0)
{
- iDCardModel.ImageBase64 = "data:image/jpg;base64," + Encoding.UTF8.GetString(FileName);
-
+ string txt = Encoding.UTF8.GetString(FileName);
+ iDCardModel.ImageBase64 = "data:image/jpg;base64," + txt.Substring(0, (txt.IndexOf("=") + 1));
}
byte[] sCHMsg = new byte[520];
int itype = 0;
@@ -76,9 +76,13 @@ namespace AksWebBrowser.Devices
iDCardModel.StartDate = baseinfo[7];
iDCardModel.EndDate = baseinfo[8];
}
+ var OBJ = new
+ {
+ Data = iDCardModel
+ };
//关闭
LibClass.ICReaderClose(icdev);
- return "{\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"" + JsonConvert.SerializeObject(iDCardModel) + "\"}";
+ return "{\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"" + JsonConvert.SerializeObject(OBJ) + "\"}";
}
else
{
diff --git a/CPF_Cef/Devices/PrintPJ.cs b/CPF_Cef/Devices/PrintPJ.cs
new file mode 100644
index 0000000..fb590d8
--- /dev/null
+++ b/CPF_Cef/Devices/PrintPJ.cs
@@ -0,0 +1,341 @@
+
+using AKSWebBrowser.Commen;
+using CPF.Windows;
+using System;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace AksWebBrowser.Devices
+{
+ ///
+ /// 打印票据
+ ///
+ public class PrintPJ
+ {
+ public static int m_iInit = -1; //打印机初始化状态
+ public static int m_iStatus = -1; //打印机状态
+ //语言版本 Language
+ public static int m_lcLanguage = 0;
+ private readonly string comAddr;
+ private readonly int port;
+ ///
+ /// 通过注入的方式传递
+ ///
+ ///
+ ///
+ public PrintPJ(string com, int port)
+ {
+ this.comAddr = com;
+ this.port = port;
+ }
+
+ //打印小票
+ public int SendPrint(string ph, string ddrs, string qrcode, string ywmc)
+ {
+ m_iStatus = LibPrint.GetStatus();
+ if (m_iStatus == 0)//打印机已连接
+ {
+ return Print(ph, ddrs, qrcode, ywmc);
+ }
+ else
+ {
+ try
+ {
+ CheckAndOpenSerialPort();
+ if (m_iInit == 0)
+ {
+ return Print(ph, ddrs, qrcode, ywmc);
+ }
+ else
+ {
+ //打印未连接
+ return 2;
+ }
+ }
+ catch (Exception)
+ {
+ return 3;
+ }
+ }
+ }
+
+ ///
+ /// 打印模板
+ ///
+ /// 排号
+ /// 等待人数
+ /// 二维码
+ /// 业务名称
+ ///
+ public int Print(string ph, string ddrs, string qrcode, string ywmc)
+ {
+ StringBuilder sbData = new StringBuilder("");
+ try
+ {
+ sbData = new StringBuilder(string.Format(" 您预约办理的{0}业务-,排号为:", ywmc));
+ LibPrint.SetClean();
+ LibPrint.SetReadZKmode(0);
+ LibPrint.SetAlignment(0);
+ LibPrint.SetSizetext(2, 1);
+ LibPrint.SetLinespace(20);
+ LibPrint.PrintString(sbData, 0);
+
+ //排号
+ LibPrint.SetAlignment(1);
+ LibPrint.SetBold(1);
+ LibPrint.SetSizetext(2, 2);
+ sbData = new StringBuilder(ph);
+ LibPrint.PrintString(sbData, 0);
+
+ LibPrint.SetAlignment(0);
+ LibPrint.SetBold(0);
+ LibPrint.SetSizetext(2, 1);
+ LibPrint.PrintFeedDot(10);
+
+ //等候
+ sbData = new StringBuilder(string.Format("您前面有 {0} 人等候,注意业务窗口的呼叫号码信息。过号请重新取号。", ddrs));
+ LibPrint.PrintString(sbData, 1);
+ LibPrint.PrintFeedDot(60);
+
+ //二维码
+ LibPrint.SetClean();
+ LibPrint.SetCommandmode(10);
+ LibPrint.SetAlignment(1);
+ LibPrint.SetLeftmargin(-60);
+ sbData = new StringBuilder(qrcode);
+ LibPrint.PrintQrcode(sbData, 2, 6, 1);
+ LibPrint.PrintRemainQR();
+ LibPrint.PrintFeedDot(100);
+
+ //时间
+ LibPrint.SetClean();
+ LibPrint.SetSizetext(0, 0);
+ LibPrint.SetAlignment(2);
+ sbData = new StringBuilder(DateTime.Now.ToLocalTime().ToString());
+ LibPrint.PrintString(sbData, 1);
+ LibPrint.PrintFeedDot(190);
+ LibPrint.PrintFeedDot(200);
+ LibPrint.PrintCutpaper(0);
+ }
+ catch (Exception ex)
+ {
+ return 1;
+ }
+ return 0;
+ }
+
+ //开启打印
+ public void CheckAndOpenSerialPort()
+ {
+ //关闭打印机
+ try { LibPrint.SetClose(); } catch (Exception ex) { Console.WriteLine("打印机未开启:" + ex.Message); }
+ try
+ {
+ byte[] cDevname = Encoding.UTF8.GetBytes(comAddr);
+ int iBaudrate = port;
+ //打开连接
+ m_iInit = LibPrint.SetDevname(1, cDevname, iBaudrate);
+ if (m_iInit == 0) {
+ Log.Info("热敏打印机已连接");
+ //初始化打印机
+ m_iInit = LibPrint.SetInit();
+ if (m_iInit == 0)
+ {
+ Log.Info("初始化成功");
+ LibPrint.SetCommandmode(3);
+ }
+ else
+ {
+ Log.Info("初始化失败");
+ }
+ }
+ }
+ catch (Exception ex) { Console.WriteLine("票据打印机初始化异常:" + ex.Message); }
+ }
+ }
+
+ class LibPrint
+ {
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetInit", CharSet = CharSet.Ansi)]
+ public static extern int SetInit();
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetUsbportauto", CharSet = CharSet.Ansi)]
+ public static extern int SetUsbportauto();
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetClean", CharSet = CharSet.Ansi)]
+ public static extern int SetClean();
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetClose", CharSet = CharSet.Ansi)]
+ public static extern int SetClose();
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetAlignment", CharSet = CharSet.Ansi)]
+ public static extern int SetAlignment(int iAlignment);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetAlignmentLeftRight", CharSet = CharSet.Ansi)]
+ public static extern int SetAlignmentLeftRight(int iAlignment);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetBold", CharSet = CharSet.Ansi)]
+ public static extern int SetBold(int iBold);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetCommandmode", CharSet = CharSet.Ansi)]
+ public static extern int SetCommandmode(int iMode);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetLinespace", CharSet = CharSet.Ansi)]
+ public static extern int SetLinespace(int iLinespace);
+ //设置设备名称(Linux)
+ [DllImport("libmsprintsdk", EntryPoint = "SetDevname", CharSet = CharSet.Ansi)]
+ public static extern int SetDevname(int iDevtype, byte[] cDevname, int iBaudrate);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintString", CharSet = CharSet.Ansi)]
+ public static extern int PrintString(StringBuilder strData, int iImme);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintFeedline", CharSet = CharSet.Ansi)]
+ public static extern int PrintFeedline(int iLine);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintSelfcheck", CharSet = CharSet.Ansi)]
+ public static extern int PrintSelfcheck();
+
+ [DllImport("libmsprintsdk", EntryPoint = "GetStatus", CharSet = CharSet.Ansi)]
+ public static extern int GetStatus();
+
+ [DllImport("libmsprintsdk", EntryPoint = "GetStatusspecial", CharSet = CharSet.Ansi)]
+ public static extern int GetStatusspecial();
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintCutpaper", CharSet = CharSet.Ansi)]
+ public static extern int PrintCutpaper(int iMode);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetSizetext", CharSet = CharSet.Ansi)]
+ public static extern int SetSizetext(int iHeight, int iWidth);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetSizechinese", CharSet = CharSet.Ansi)]
+ public static extern int SetSizechinese(int iHeight, int iWidth, int iUnderline, int iChinesetype);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetItalic", CharSet = CharSet.Ansi)]
+ public static extern int SetItalic(int iItalic);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintDiskbmpfile", CharSet = CharSet.Ansi)]
+ public static extern int PrintDiskbmpfile(StringBuilder strData);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintDiskimgfile", CharSet = CharSet.Ansi)]
+ public static extern int PrintDiskimgfile(StringBuilder strData);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintQrcode", CharSet = CharSet.Ansi)]
+ public static extern int PrintQrcode(StringBuilder strData, int iLmargin, int iMside, int iRound);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintRemainQR", CharSet = CharSet.Ansi)]
+ public static extern int PrintRemainQR();
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetLeftmargin", CharSet = CharSet.Ansi)]
+ public static extern int SetLeftmargin(int iLmargin);
+
+ [DllImport("libmsprintsdk", EntryPoint = "GetProductinformation", CharSet = CharSet.Ansi)]
+ public static extern int GetProductinformation(int Fstype, byte[] FIDdata, int iFidlen);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintTransmit", CharSet = CharSet.Ansi)]
+ public static extern int PrintTransmit(byte[] strCmd, int iLength);
+
+ [DllImport("libmsprintsdk", EntryPoint = "GetTransmit", CharSet = CharSet.Ansi)]
+ public static extern int GetTransmit(byte[] strCmd, int iLength, byte[] bRecv, int iRelen);
+
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintFeedDot", CharSet = CharSet.Ansi)]
+ public static extern int PrintFeedDot(int Lnumber);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintChargeRow", CharSet = CharSet.Ansi)]
+ public static extern int PrintChargeRow();
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetSpacechar", CharSet = CharSet.Ansi)]
+ public static extern int SetSpacechar(int iSpace);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetSizechar", CharSet = CharSet.Ansi)]
+ public static extern int SetSizechar(int iHeight, int iWidth, int iUnderline, int iAsciitype);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetRotate", CharSet = CharSet.Ansi)]
+ public static extern int SetRotate(int iRotate);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetDirection", CharSet = CharSet.Ansi)]
+ public static extern int SetDirection(int iDirection);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetWhitemodel", CharSet = CharSet.Ansi)]
+ public static extern int SetWhitemodel(int iWhite);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetUnderline", CharSet = CharSet.Ansi)]
+ public static extern int SetUnderline(int underline);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintNextHT", CharSet = CharSet.Ansi)]
+ public static extern int PrintNextHT();
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetHTseat", CharSet = CharSet.Ansi)]
+ public static extern int SetHTseat(byte[] bHTseat, int iLength);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetCodepage", CharSet = CharSet.Ansi)]
+ public static extern int SetCodepage(int country, int CPnumber);
+
+ [DllImport("libmsprintsdk", EntryPoint = "Print1Dbar", CharSet = CharSet.Ansi)]
+ public static extern int Print1Dbar(int iWidth, int iHeight, int iHrisize, int iHriseat, int iCodetype, StringBuilder strData);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetPagemode", CharSet = CharSet.Ansi)]
+ public static extern int SetPagemode(int iMode, int Xrange, int Yrange);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetPagestartposition", CharSet = CharSet.Ansi)]
+ public static extern int SetPagestartposition(int Xdot, int Ydot);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetPagedirection", CharSet = CharSet.Ansi)]
+ public static extern int SetPagedirection(int iDirection);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintPagedata", CharSet = CharSet.Ansi)]
+ public static extern int PrintPagedata();
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetReadZKmode", CharSet = CharSet.Ansi)]
+ public static extern int SetReadZKmode(int mode);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetNvbmp", CharSet = CharSet.Ansi)]
+ public static extern int SetNvbmp(int iNums, StringBuilder strPath);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintNvbmp", CharSet = CharSet.Ansi)]
+ public static extern int PrintNvbmp(int iNvindex, int iMode);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetPrintIDorName", CharSet = CharSet.Ansi)]
+ public static extern int SetPrintIDorName(StringBuilder strIDorNAME);
+
+ [DllImport("libmsprintsdk", EntryPoint = "GetPrintIDorName", CharSet = CharSet.Ansi)]
+ public static extern int GetPrintIDorName(StringBuilder strIDorNAME);
+
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintMarkcutpaper", CharSet = CharSet.Ansi)]
+ public static extern int PrintMarkcutpaper(int iMode);
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetTraceLog", CharSet = CharSet.Ansi)]
+ public static extern int SetTraceLog(int iLog);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintPdf417", CharSet = CharSet.Ansi)]
+ public static extern int PrintPdf417(int iDotwidth, int iDotheight, int iDatarows, int iDatacolumns, StringBuilder strData);
+
+ //旋转模式
+ [DllImport("libmsprintsdk", EntryPoint = "SetRotation_Intomode", CharSet = CharSet.Ansi)]
+ public static extern int SetRotation_Intomode();
+
+ [DllImport("libmsprintsdk", EntryPoint = "SetRotation_Leftspace", CharSet = CharSet.Ansi)]
+ public static extern int SetRotation_Leftspace(int iLeftspace);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintRotation_Sendcode", CharSet = CharSet.Ansi)]
+ public static extern int PrintRotation_Sendcode(int leftspace, int iWidth, int iHeight, int iCodetype, StringBuilder strData);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintRotation_Sendtext", CharSet = CharSet.Ansi)]
+ public static extern int PrintRotation_Sendtext(StringBuilder strData, int iImme);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintRotation_Changeline", CharSet = CharSet.Ansi)]
+ public static extern int PrintRotation_Changeline();
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintRotation_Data", CharSet = CharSet.Ansi)]
+ public static extern int PrintRotation_Data();
+
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintPDF_CCCB", CharSet = CharSet.Ansi)]
+ public static extern int PrintPDF_CCCB(StringBuilder strData);
+
+ [DllImport("libmsprintsdk", EntryPoint = "PrintDataMatrix", CharSet = CharSet.Ansi)]
+ public static extern int PrintDataMatrix(StringBuilder strData, int iSize);
+ }
+}
diff --git a/CPF_Cef/MainModel.cs b/CPF_Cef/MainModel.cs
index 0e5fbc0..1769ce0 100644
--- a/CPF_Cef/MainModel.cs
+++ b/CPF_Cef/MainModel.cs
@@ -39,7 +39,6 @@ namespace AKS.EnterpriseLibrary.WebBrowser
public static Process Typrocess;
public TcpClients tcpClients = new TcpClients();
public SignDll sign = new SignDll();
-
public bool isStart = true;
///
/// 读取身份证卡号
@@ -53,6 +52,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser
{
IDCard iDCard = new IDCard();
string result = iDCard.getIdCard();
+ Log.Info(result);
SubmitLogs(result, "IDCardRead");
return result;
}
@@ -78,28 +78,27 @@ namespace AKS.EnterpriseLibrary.WebBrowser
{
try
{
- if (isStart)
- {
- return "{\"message\":\"success\",\"code\":\"200\",\"status\":true,\"data\":\"" + "打印成功" + "\"}";
- }
if (!isFuncisFuncObject("SendByPrint"))
{
Utils.MessagesBox("打印排队票据设备未授权使用");
return "{\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + "打印排队票据设备未授权使用" + "\"}";
}
- else if (Parame.tcpClient == null)
- {
- return "{\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + "硬件服务未启动" + "\"}";
- }
else
{
- string paramsString = "{\"callback\":\"" + callback + "\",\"type\":\"2\",\"param\":{\"ph\":\"" + ph + "\",\"ddrs\":\"" + ddrs + "\",\"qrcode\":\"" + qrcode + "\",\"ywmc\":\"" + ywmc + "\"}}";
- //Log.Info("打印排队票据: " + paramsString + "");
- string base64 = str2Base64(paramsString);
- string str = tcpClients.SendDataWithHeader(Parame.tcpClient.GetStream(), base64);
- string result = Base64str2(str);
- SubmitLogs(result, "SendByPrint");
- return result;
+ PrintPJ print = new PrintPJ(Parame.pritPj, Parame.pritPjPort);
+ var data = print.SendPrint(ph, ddrs, qrcode, ywmc);
+ if (data == 0)
+ {
+ string result = "{\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"" + "打印成功" + "\"}";
+ SubmitLogs(result, "SendByPrint");
+ return result;
+ }
+ else
+ {
+ string result = "{\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + (data == 1 ? "打印失败" : (data == 2 ? "打印机未连接" : "打印机初始化失败")) + "\"}";
+ SubmitLogs(result, "SendByPrint");
+ return result;
+ }
}
}
catch (Exception ex)
@@ -356,7 +355,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser
}
else
{
-
+
sign.OpenComDevice(callback);
string result = "{\"callback\":\"" + callback + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"suffix\":\"png\",\"data\":\"" + "成功" + "\"}";
SubmitLogs(result, "OpenSign");
@@ -1060,7 +1059,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser
public string GetSignBase64()
{
//获取设备信息
-
+
Task.Run(() => HttpPostResponseBySign());
@event6.WaitOne();
if (string.IsNullOrEmpty(qzbStr))
diff --git a/CPF_Cef/Parame.cs b/CPF_Cef/Parame.cs
index 3744879..a61ca29 100644
--- a/CPF_Cef/Parame.cs
+++ b/CPF_Cef/Parame.cs
@@ -21,6 +21,11 @@ namespace AksWebBrowser
public static string Ip = "192.168.1.166";
//高拍仪url
public static string gpyUrl = "http://127.0.0.1:6543";
+ //签字版
+ public static string signUrl = "http://127.0.0.1:9399/device";
+ //票据打印机
+ public static string pritPj = "/dev/ttyUSB7";
+ public static int pritPjPort = 38400;
}
public struct Func
{