[英]Crystal Report PrintToPrint method hang the software when Printer is not connected in after software installation?
在我的项目方法中,用于Crystal Report的PrintToPrint可以正常工作,但是在安装软件后,当打印机未连接到计算机时,此方法会使我的软件进程挂起。 谁能帮我解决这个问题?
我的解决方案是编写一个函数来确认打印机是否在线,然后再调用以打开水晶报告。
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.