Commit 1a83758c 刘韬

1

1 个父辈 21403dfb
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
......@@ -92,10 +93,15 @@ namespace ZebraPrinterHelper
msg = "";
try
{
Debug.WriteLine("Connection1");
printerConnection = GetConnection();
Debug.WriteLine("Connection2");
printerConnection.Open();
Debug.WriteLine("Connection3");
PrinterDPI = GetPrinterDPI();
Debug.WriteLine("Connection4");
printer = ZebraPrinterFactory.GetInstance(printerConnection);
Debug.WriteLine("Connection5");
return true;
}
catch (ConnectionException e)
......@@ -108,15 +114,19 @@ namespace ZebraPrinterHelper
}
catch (IOException e)
{
msg = "Image Error" + e.Message;
msg = "Image Error:" + e.Message;
}
catch (ZebraIllegalArgumentException e)
{
msg = "Illegal Arguments" + e.Message;
msg = "Illegal Arguments:" + e.Message;
}
catch (ArgumentException e)
{
msg = "Invalid File Path" + e.Message;
msg = "Invalid File Path:" + e.Message;
}
catch (Exception e)
{
msg = "Exception:" + e.Message;
}
finally
{
......@@ -165,13 +175,21 @@ namespace ZebraPrinterHelper
/// <param name="msg">错误消息</param>
/// <param name="checkPeeler">是否检查剥离器</param>
/// <returns>是否成功</returns>
public bool PrintImage(Bitmap bmp, out string msg,bool checkPeeler)
public bool PrintImage(Bitmap bmp, out string msg, bool checkPeeler, bool checkstatus = true) {
return PrintImage(bmp, bmp.Width, bmp.Height, out msg, checkPeeler, checkstatus);
}
public bool PrintImage(Bitmap bmp,int width, int height, out string msg,bool checkPeeler,bool checkstatus=true)
{
msg = "";
Debug.WriteLine("StartPrintImage");
if (checkstatus)
{
if (!CheckAndGetStatus(out PrinterStatus status, out msg))
return false;
Debug.WriteLine("CheckAndGetStatus");
if (status.labelsRemainingInBatch > 0)
CancelAll();
Debug.WriteLine("labelsRemainingInBatch");
if (!status.isReadyToPrint)
{
string[] printerStatusString = new PrinterStatusMessages(status).GetStatusMessage();
......@@ -179,12 +197,14 @@ namespace ZebraPrinterHelper
msg = string.Join("\r\n", printerStatusString);
return false;
}
Debug.WriteLine("isReadyToPrint");
if (checkPeeler && IsLabelOnPeeler)
{
msg = "上一个标签尚未移走";
return false;
}
Debug.WriteLine("IsLabelOnPeeler");
}
try
{
//var width = bmp.Width * ((double)PrinterDPI / 300);
......@@ -192,6 +212,7 @@ namespace ZebraPrinterHelper
//var db = GetReducedImage(bmp, (int)width, (int)height);
//db.Save("temp.bmp");
ZebraImageI image = ZebraImageFactory.GetImage(bmp);
Debug.WriteLine("ZebraImageFactory.GetImage");
printer.PrintImage(image, 0, 0, (int)bmp.Width, (int)bmp.Height, false);
return true;
}
......@@ -209,11 +230,15 @@ namespace ZebraPrinterHelper
}
catch (ZebraIllegalArgumentException e)
{
msg = "Illegal Arguments" + e.ToString();
msg = "Illegal Arguments:" + e.ToString();
}
catch (ArgumentException e)
{
msg = "Invalid File Path" + e.ToString();
msg = "Invalid File Path:" + e.ToString();
}
catch (Exception e)
{
msg = "Exception:" + e.Message;
}
finally
{
......@@ -235,6 +260,11 @@ namespace ZebraPrinterHelper
return false;
}
}
Debug.WriteLine("StartGetStatus");
status = GetStatus();
if (status == null)
{
Debug.WriteLine("GetStatusAgain");
status = GetStatus();
if (status == null)
{
......@@ -247,6 +277,8 @@ namespace ZebraPrinterHelper
}
goto ReTry;
}
}
Debug.WriteLine("isPaused");
ReTryCount = 0;
if (status.isPaused)
{
......@@ -380,8 +412,10 @@ namespace ZebraPrinterHelper
/// <returns></returns>
public PrinterStatus GetStatus()
{
if (printerConnection == null || !printerConnection.Connected)
{
Debug.WriteLine("ReConnection");
if (!Connection(out string m))
{
//msg = m;
......@@ -390,12 +424,15 @@ namespace ZebraPrinterHelper
}
try
{
Debug.WriteLine("GetCurrentStatus");
return printer.GetCurrentStatus();
//ZebraPrinterLinkOs linkOsPrinter = ZebraPrinterFactory.CreateLinkOsPrinter(printer);
//Debug.WriteLine("linkOsPrinter:"+ linkOsPrinter==null);
//return (linkOsPrinter != null) ? linkOsPrinter.GetCurrentStatus() : printer.GetCurrentStatus();
}
catch
catch(Exception ex)
{
Debug.WriteLine("GetCurrentStatusError:"+ex);
return null;
}
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!