Просмотр исходного кода

打印异常位置确认,System.ComponentModel.Win32Exception (0x80004005): 句柄无效。

chenxy 3 месяцев назад
Родитель
Сommit
e9fec8ac08

+ 46 - 46
DK.Service/BarcodePrintService/BarcodePrintLogic.cs

@@ -524,14 +524,14 @@ namespace Dongke.IBOSS.PRD.Service.BarcodePrintService
             {
                 ServiceResultEntity sre = new ServiceResultEntity();
 
-                System.Drawing.Printing.PrinterSettings.StringCollection installedPrinters =
-                    System.Drawing.Printing.PrinterSettings.InstalledPrinters;
-                if (installedPrinters.Count < 1)
-                {
-                    sre.Status = Constant.ServiceResultStatus.Other;
-                    sre.Message = "服务器没有安装打印驱动";
-                    return sre;
-                }
+                //System.Drawing.Printing.PrinterSettings.StringCollection installedPrinters =
+                //    System.Drawing.Printing.PrinterSettings.InstalledPrinters;
+                //if (installedPrinters.Count < 1)
+                //{
+                //    sre.Status = Constant.ServiceResultStatus.Other;
+                //    sre.Message = "服务器没有安装打印驱动";
+                //    return sre;
+                //}
 
                 oracleTrConn = ClsDbFactory.CreateDBTransaction(IBOSS.PRD.Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
                 oracleTrConn.Connect();
@@ -606,22 +606,22 @@ namespace Dongke.IBOSS.PRD.Service.BarcodePrintService
                 //    return sre;
                 //}
 
-                bool hasPrinter = false;
-                foreach (string item in installedPrinters)
-                {
-                    if (item == printerName)
-                    {
-                        hasPrinter = true;
-                        break;
-                    }
-                }
+                //bool hasPrinter = false;
+                //foreach (string item in installedPrinters)
+                //{
+                //    if (item == printerName)
+                //    {
+                //        hasPrinter = true;
+                //        break;
+                //    }
+                //}
 
-                if (!hasPrinter)
-                {
-                    sre.Status = Constant.ServiceResultStatus.Other;
-                    sre.Message = "服务器没有连接相应打印机【" + printerName + "】";
-                    return sre;
-                }
+                //if (!hasPrinter)
+                //{
+                //    sre.Status = Constant.ServiceResultStatus.Other;
+                //    sre.Message = "服务器没有连接相应打印机【" + printerName + "】";
+                //    return sre;
+                //}
 
                 // 打印
                 ////LayoutBox layoutBox = new LayoutBox();
@@ -1452,14 +1452,14 @@ namespace Dongke.IBOSS.PRD.Service.BarcodePrintService
             {
                 ServiceResultEntity sre = new ServiceResultEntity();
 
-                System.Drawing.Printing.PrinterSettings.StringCollection installedPrinters =
-                    System.Drawing.Printing.PrinterSettings.InstalledPrinters;
-                if (installedPrinters.Count < 1)
-                {
-                    sre.Status = Constant.ServiceResultStatus.Other;
-                    sre.Message = "服务器没有安装打印驱动";
-                    return sre;
-                }
+                //System.Drawing.Printing.PrinterSettings.StringCollection installedPrinters =
+                //    System.Drawing.Printing.PrinterSettings.InstalledPrinters;
+                //if (installedPrinters.Count < 1)
+                //{
+                //    sre.Status = Constant.ServiceResultStatus.Other;
+                //    sre.Message = "服务器没有安装打印驱动";
+                //    return sre;
+                //}
 
                 oracleTrConn = ClsDbFactory.CreateDBTransaction(IBOSS.PRD.Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
                 oracleTrConn.Connect();
@@ -1526,22 +1526,22 @@ namespace Dongke.IBOSS.PRD.Service.BarcodePrintService
                     }
                 }
                  
-                bool hasPrinter = false;
-                foreach (string item in installedPrinters)
-                {
-                    if (item == printerName)
-                    {
-                        hasPrinter = true;
-                        break;
-                    }
-                }
+                //bool hasPrinter = false;
+                //foreach (string item in installedPrinters)
+                //{
+                //    if (item == printerName)
+                //    {
+                //        hasPrinter = true;
+                //        break;
+                //    }
+                //}
 
-                if (!hasPrinter)
-                {
-                    sre.Status = Constant.ServiceResultStatus.Other;
-                    sre.Message = "服务器没有连接相应打印机【" + printerName + "】";
-                    return sre;
-                }
+                //if (!hasPrinter)
+                //{
+                //    sre.Status = Constant.ServiceResultStatus.Other;
+                //    sre.Message = "服务器没有连接相应打印机【" + printerName + "】";
+                //    return sre;
+                //}
 
                 // 打印
 

+ 8 - 2
DK.Service/BarcodePrintService/InvoiceLayoutPrinter.cs

@@ -124,6 +124,7 @@ namespace Dongke.WinForm.Controls.InvoiceLayout
             //{
             //    throw new System.ArgumentNullException("detail");
             //}
+            string ex_pp = "异常位置:0";
             try
             {
                 //Logger.Debug("打印开始1");
@@ -136,10 +137,11 @@ namespace Dongke.WinForm.Controls.InvoiceLayout
                 printer._printData = data;
                 printer._printGridData = detail;
                 //Logger.Debug("打印开始2");
-
+                ex_pp = "异常位置:1";
 
                 using (printer._printDocument = new PrintDocument())
                 {
+                    ex_pp = "异常位置:2";
                     printer._printDocument.DocumentName = "LayoutDocument";
                     printer._printDocument.BeginPrint += new PrintEventHandler(printer.printDocument_BeginPrint);
                     printer._printDocument.PrintPage += new PrintPageEventHandler(printer.PrintDocument_PrintPage);
@@ -147,19 +149,23 @@ namespace Dongke.WinForm.Controls.InvoiceLayout
                     printer._printDocument.PrinterSettings.PrinterName = printerName;
                     printer._printDocument.PrinterSettings.Copies = copies;
 
+                    ex_pp = "异常位置:3";
                     //Logger.Debug("打印开始3");
                     printer._printDocument.Print();
                     //Logger.Debug("打印开始4");
+                    ex_pp = "异常位置:4";
 
                     //return printer.DrawImages().ToArray();
                     //return printer.DrawImages();
                 }
 
+                ex_pp = "异常位置:5";
                 //GC.Collect();
             }
             catch (Exception ex)
             {
-                throw ex;
+                //throw ex;
+                throw new Exception(ex_pp, ex);
             }
         }