|
@@ -11,6 +11,10 @@ namespace UAS_Web.tool
|
|
|
{
|
|
{
|
|
|
public event Action<byte[]> NotifyMsg;
|
|
public event Action<byte[]> NotifyMsg;
|
|
|
|
|
|
|
|
|
|
+ string PrinterName = "";
|
|
|
|
|
+
|
|
|
|
|
+ string PrintType = "";
|
|
|
|
|
+
|
|
|
PrinterList print;
|
|
PrinterList print;
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// 拦截指定请求
|
|
/// 拦截指定请求
|
|
@@ -32,6 +36,9 @@ namespace UAS_Web.tool
|
|
|
case "zplPrint.action":
|
|
case "zplPrint.action":
|
|
|
filter = FilterManager.CreateFilter(request.Identifier.ToString()) as MessageFilter;
|
|
filter = FilterManager.CreateFilter(request.Identifier.ToString()) as MessageFilter;
|
|
|
return filter;
|
|
return filter;
|
|
|
|
|
+ case "getPrintType.action":
|
|
|
|
|
+ filter = FilterManager.CreateFilter(request.Identifier.ToString()) as MessageFilter;
|
|
|
|
|
+ return filter;
|
|
|
default:
|
|
default:
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
@@ -52,25 +59,21 @@ namespace UAS_Web.tool
|
|
|
{
|
|
{
|
|
|
MessageFilter filter;
|
|
MessageFilter filter;
|
|
|
string str;
|
|
string str;
|
|
|
|
|
+ Dictionary<string, object> data;
|
|
|
switch (request.Url.Substring(request.Url.LastIndexOf("/") + 1))
|
|
switch (request.Url.Substring(request.Url.LastIndexOf("/") + 1))
|
|
|
{
|
|
{
|
|
|
case "default?type=printer":
|
|
case "default?type=printer":
|
|
|
|
|
+ //弹出打印机选择列表
|
|
|
print = new PrinterList(browser) { StartPosition = FormStartPosition.CenterScreen };
|
|
print = new PrinterList(browser) { StartPosition = FormStartPosition.CenterScreen };
|
|
|
print.Controls["Confirm"].Click += RequestHandler_Click;
|
|
print.Controls["Confirm"].Click += RequestHandler_Click;
|
|
|
|
|
+ print.TopMost = true;
|
|
|
print.ShowDialog();
|
|
print.ShowDialog();
|
|
|
- filter = FilterManager.GetFileter(request.Identifier.ToString()) as MessageFilter;
|
|
|
|
|
- str = System.Text.Encoding.UTF8.GetString(filter.dataAll.ToArray());
|
|
|
|
|
- //filter_NotifyData(filter.dataAll.ToArray());
|
|
|
|
|
- Console.WriteLine(str);
|
|
|
|
|
break;
|
|
break;
|
|
|
case "zplPrint.action":
|
|
case "zplPrint.action":
|
|
|
filter = FilterManager.GetFileter(request.Identifier.ToString()) as MessageFilter;
|
|
filter = FilterManager.GetFileter(request.Identifier.ToString()) as MessageFilter;
|
|
|
str = System.Text.Encoding.UTF8.GetString(filter.dataAll.ToArray());
|
|
str = System.Text.Encoding.UTF8.GetString(filter.dataAll.ToArray());
|
|
|
- Console.WriteLine(str);
|
|
|
|
|
-
|
|
|
|
|
- PrintHelper.SendStringToPrinter(print.Controls["Printer"].Text, "");
|
|
|
|
|
- //filter_NotifyData(filter.dataAll.ToArray());
|
|
|
|
|
- Dictionary<string, object> data = ToDictionary(str);
|
|
|
|
|
|
|
+ data = ToDictionary(str);
|
|
|
|
|
+ //获取所有的打印格式数据
|
|
|
string PrintCode = data["data"].ToString();
|
|
string PrintCode = data["data"].ToString();
|
|
|
List<string> PrintList = new List<string>();
|
|
List<string> PrintList = new List<string>();
|
|
|
int PrintTime = Regex.Matches(PrintCode, "XA").Count;
|
|
int PrintTime = Regex.Matches(PrintCode, "XA").Count;
|
|
@@ -81,9 +84,15 @@ namespace UAS_Web.tool
|
|
|
}
|
|
}
|
|
|
for (int i = 0; i < PrintList.Count; i++)
|
|
for (int i = 0; i < PrintList.Count; i++)
|
|
|
{
|
|
{
|
|
|
- PrintHelper.SendStringToPrinter(print.Controls["Printer"].Text, PrintList[i]);
|
|
|
|
|
|
|
+ PrintHelper.SendStringToPrinter(PrinterName, PrintList[i]);
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case "getPrintType.action":
|
|
|
|
|
+ filter = FilterManager.GetFileter(request.Identifier.ToString()) as MessageFilter;
|
|
|
|
|
+ str = System.Text.Encoding.UTF8.GetString(filter.dataAll.ToArray());
|
|
|
|
|
+ data = ToDictionary(str);
|
|
|
|
|
+ PrintType = data["data"].ToString().Replace("\"","");
|
|
|
|
|
+ break;
|
|
|
default:
|
|
default:
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
@@ -91,12 +100,13 @@ namespace UAS_Web.tool
|
|
|
|
|
|
|
|
private void RequestHandler_Click(object sender, EventArgs e)
|
|
private void RequestHandler_Click(object sender, EventArgs e)
|
|
|
{
|
|
{
|
|
|
|
|
+ //设置打印机名称
|
|
|
print.PrintDoc.PrinterSettings.PrinterName = print.Controls["Printer"].Text;
|
|
print.PrintDoc.PrinterSettings.PrinterName = print.Controls["Printer"].Text;
|
|
|
|
|
+ PrinterName = print.Controls["Printer"].Text;
|
|
|
|
|
+ //获取矩阵图的分辨率
|
|
|
Graphics gr = print.PrintDoc.PrinterSettings.CreateMeasurementGraphics();
|
|
Graphics gr = print.PrintDoc.PrinterSettings.CreateMeasurementGraphics();
|
|
|
- print.browser.MainFrame.ExecuteJavaScriptAsync("(function(value) {dpi=value})('" + gr.DpiX + "')");
|
|
|
|
|
- print.browser.FocusedFrame.ExecuteJavaScriptAsync("console.log(this);");
|
|
|
|
|
- print.browser.FocusedFrame.ExecuteJavaScriptAsync("onGridItemClick();");
|
|
|
|
|
-
|
|
|
|
|
|
|
+ print.browser.FocusedFrame.ExecuteJavaScriptAsync("(function(value,value1){dpi=value,printType=value1})('" + gr.DpiX + "','" + PrintType + "')");
|
|
|
|
|
+ print.browser.FocusedFrame.ExecuteJavaScriptAsync("document.getElementById('confirmZplPrint').click();");
|
|
|
print.Close();
|
|
print.Close();
|
|
|
}
|
|
}
|
|
|
|
|
|