Crystal Report PrintToPrint метод зависания программного обеспечения, когда принтер не подключен после установки программного обеспечения?

В моем проекте метод PrintToPrint для Crystal Report работает нормально, но после установки программного обеспечения, когда принтер не подключен к машине, этот метод приводит к зависанию моего программного процесса. Может ли кто-нибудь помочь мне решить эту проблему?

1 ответ

Мое решение было бы написать функцию, чтобы подтвердить, что принтер в сети, прежде чем сделать вызов, чтобы открыть отчет Crystal.

using System.Management;

public bool IsPrinterReady(string printerName)
        {

        bool bprinterOnline = false;       

        ManagementScope scope = new ManagementScope(@"\root\cimv2");
        scope.Connect();

        // Select Printers from WMI Object Collections
        ManagementObjectSearcher printerSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");

        foreach (ManagementObject printer in printerSearcher.Get())
        {

            if (string.IsNullOrEmpty(printer["Name"].ToString()))
            {
                if (printer["Name"].ToString().ToLower().Equals(printerName.ToLower()))
                {

                    switch (printer["WorkOffline"].ToString().ToLower())
                    {
                        case "true":
                            bprinterOnline= true;
                            break;
                        case "false": 
                            bprinterOnline= false;
                            break;
                        default:
                            bprinterOnline= false;
                            break;
                    }
                    break;                     
                }
            }
        }
        return bprinterOnline;
    }
Другие вопросы по тегам