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;
}