Browse Source

添加解析打印指令

callm 7 years ago
parent
commit
420a833552
3 changed files with 59 additions and 2 deletions
  1. 14 0
      UAS_Web/Browser.Designer.cs
  2. 17 2
      UAS_Web/Browser.cs
  3. 28 0
      UAS_Web/tool/RequestHandler.cs

+ 14 - 0
UAS_Web/Browser.Designer.cs

@@ -29,13 +29,25 @@
         private void InitializeComponent()
         private void InitializeComponent()
         {
         {
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Browser));
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Browser));
+            this.button1 = new System.Windows.Forms.Button();
             this.SuspendLayout();
             this.SuspendLayout();
             // 
             // 
+            // button1
+            // 
+            this.button1.Location = new System.Drawing.Point(532, 151);
+            this.button1.Name = "button1";
+            this.button1.Size = new System.Drawing.Size(106, 33);
+            this.button1.TabIndex = 0;
+            this.button1.Text = "button1";
+            this.button1.UseVisualStyleBackColor = true;
+            this.button1.Click += new System.EventHandler(this.button1_Click);
+            // 
             // Browser
             // Browser
             // 
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.ClientSize = new System.Drawing.Size(950, 541);
             this.ClientSize = new System.Drawing.Size(950, 541);
+            this.Controls.Add(this.button1);
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
             this.Name = "Browser";
             this.Name = "Browser";
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
@@ -47,6 +59,8 @@
         }
         }
 
 
         #endregion
         #endregion
+
+        private System.Windows.Forms.Button button1;
     }
     }
 }
 }
 
 

+ 17 - 2
UAS_Web/Browser.cs

@@ -4,6 +4,8 @@ using System.Windows.Forms;
 using UAS_Web.tool;
 using UAS_Web.tool;
 using CefSharp;
 using CefSharp;
 using CefSharp.WinForms;
 using CefSharp.WinForms;
+using System.Text.RegularExpressions;
+using System.Collections.Generic;
 
 
 namespace UAS_Web
 namespace UAS_Web
 {
 {
@@ -19,12 +21,12 @@ namespace UAS_Web
             string path = "http://192.168.253.6/uas_dev/jsps/vendbarcode/login.jsp";
             string path = "http://192.168.253.6/uas_dev/jsps/vendbarcode/login.jsp";
             webBrowser = new ChromiumWebBrowser(path)
             webBrowser = new ChromiumWebBrowser(path)
             {
             {
-                Dock = DockStyle.Fill 
+                Dock = DockStyle.Fill
             };
             };
             //webBrowser.RegisterJsObject("", new BoundObject(), true);
             //webBrowser.RegisterJsObject("", new BoundObject(), true);
             webBrowser.MenuHandler = new MenuHandler();
             webBrowser.MenuHandler = new MenuHandler();
             webBrowser.RequestHandler = new RequestHandler();
             webBrowser.RequestHandler = new RequestHandler();
-            Controls.Add(webBrowser);
+            //Controls.Add(webBrowser);
             webBrowser.LoadError += WebBrowser_LoadError;
             webBrowser.LoadError += WebBrowser_LoadError;
         }
         }
 
 
@@ -50,5 +52,18 @@ namespace UAS_Web
                 }
                 }
             }
             }
         }
         }
+
+        private void button1_Click(object sender, EventArgs e)
+        {
+            string PrintCode = "^XA^JMA^LH0,0^FO230,230^BY2,2.0,50^PRA,D,D^A0,N,50,100^BC2,System.Windows.Forms.TextBox, Text: 50,Y,N^FDHello world1^FS^XZ^XA^JMA^LH0,0^FO230,230^BY2,2.0,50^PRA,D,D^A0,N,50,100^BC2,System.Windows.Forms.TextBox, Text: 50,Y,N^FDHello world2^FS^XZ^XA^JMA^LH0,0^FO230,230^BY2,2.0,50^PRA,D,D^A0,N,50,100^BC2,System.Windows.Forms.TextBox, Text: 50,Y,N^FDHello world3^FS^XZ^XA^JMA^LH0,0^FO230,230^BY2,2.0,50^PRA,D,D^A0,N,50,100^BC2,System.Windows.Forms.TextBox, Text: 50,Y,N^FDHello world4^FS^XZ^XA^JMA^LH0,0^FO230,230^BY2,2.0,50^PRA,D,D^A0,N,50,100^BC2,System.Windows.Forms.TextBox, Text: 50,Y,N^FDHello world5^FS^XZ";
+            List<string> PrintList = new List<string>();
+            int PrintTime = Regex.Matches(PrintCode, "XA").Count;
+            for (int i = 0; i < PrintTime; i++)
+            {
+                Console.WriteLine(PrintCode.Substring(0, PrintCode.IndexOf("XZ") + 2));
+                PrintList.Add(PrintCode.Substring(0, PrintCode.IndexOf("XZ") + 2));
+                PrintCode = PrintCode.Substring(PrintCode.IndexOf("XZ") + 2);
+            }
+        }
     }
     }
 }
 }

+ 28 - 0
UAS_Web/tool/RequestHandler.cs

@@ -8,6 +8,15 @@ namespace UAS_Web.tool
     class RequestHandler : IRequestHandler
     class RequestHandler : IRequestHandler
     {
     {
         public event Action<byte[]> NotifyMsg;
         public event Action<byte[]> NotifyMsg;
+        /// <summary>
+        /// 拦截指定请求
+        /// </summary>
+        /// <param name="browserControl"></param>
+        /// <param name="browser"></param>
+        /// <param name="frame"></param>
+        /// <param name="request"></param>
+        /// <param name="response"></param>
+        /// <returns></returns>
         IResponseFilter IRequestHandler.GetResourceResponseFilter(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response)
         IResponseFilter IRequestHandler.GetResourceResponseFilter(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response)
         {
         {
             switch (request.Url.Substring(request.Url.LastIndexOf("/") + 1))
             switch (request.Url.Substring(request.Url.LastIndexOf("/") + 1))
@@ -24,6 +33,16 @@ namespace UAS_Web.tool
             return null;
             return null;
         }
         }
 
 
+        /// <summary>
+        /// 完成响应后获取Js返回的数据
+        /// </summary>
+        /// <param name="browserControl"></param>
+        /// <param name="browser"></param>
+        /// <param name="frame"></param>
+        /// <param name="request"></param>
+        /// <param name="response"></param>
+        /// <param name="status"></param>
+        /// <param name="receivedContentLength"></param>
         void IRequestHandler.OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
         void IRequestHandler.OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
         {
         {
             switch (request.Url.Substring(request.Url.LastIndexOf("/") + 1))
             switch (request.Url.Substring(request.Url.LastIndexOf("/") + 1))
@@ -38,6 +57,15 @@ namespace UAS_Web.tool
                     MessageFilter filter = FilterManager.GetFileter(request.Identifier.ToString()) as MessageFilter;
                     MessageFilter filter = FilterManager.GetFileter(request.Identifier.ToString()) as MessageFilter;
                     string str = System.Text.Encoding.UTF8.GetString(filter.dataAll.ToArray());
                     string str = System.Text.Encoding.UTF8.GetString(filter.dataAll.ToArray());
                     filter_NotifyData(filter.dataAll.ToArray());
                     filter_NotifyData(filter.dataAll.ToArray());
+                    Dictionary<string, object> data = ToDictionary(str);
+                    string PrintCode = data["data"].ToString();
+                    List<string> PrintList = new List<string>();
+                    //int CutPoint = 0;
+                    for (int i = 0; i < Regex.Matches(PrintCode, @"^XA").Count; i++)
+                    {
+                        PrintList.Add(PrintCode.Substring(0,PrintCode.IndexOf("^XZ")));
+                        PrintCode = PrintCode.Substring(PrintCode.IndexOf("^XZ")+1);
+                    }
                     //Console.WriteLine(str);
                     //Console.WriteLine(str);
                     break;
                     break;
                 default:
                 default: