Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果出现ReportViewer,请检查打印机状态 我有个问题,希望大家帮忙。_C#_Printing_Reportviewer_Status - Fatal编程技术网

C# 如果出现ReportViewer,请检查打印机状态 我有个问题,希望大家帮忙。

C# 如果出现ReportViewer,请检查打印机状态 我有个问题,希望大家帮忙。,c#,printing,reportviewer,status,C#,Printing,Reportviewer,Status,我在reportViewer的事件打印中编写代码打印,但不检查状态打印 示例:如果打印机处于关闭状态,请单击“打印”按钮并选择“打印机”,然后单击“确定”。打印作业已发送,但仍处于挂起状态,尽管已准确告知打印机已关闭 我不知道如何在reportview事件中编写代码,以便在打印前检查打印机的状态 希望大家多多指点。 这是密码 private void rptInHoaDon_Print(object sender, Microsoft.Reporting.WinForms.ReportP

我在reportViewer的事件打印中编写代码打印,但不检查状态打印

示例:如果打印机处于关闭状态,请单击“打印”按钮并选择“打印机”,然后单击“确定”。打印作业已发送,但仍处于挂起状态,尽管已准确告知打印机已关闭

我不知道如何在reportview事件中编写代码,以便在打印前检查打印机的状态

希望大家多多指点。 这是密码

    private void rptInHoaDon_Print(object sender, Microsoft.Reporting.WinForms.ReportPrintEventArgs e)
    {
        ManagementScope scope = new ManagementScope(@"\root\cimv2");
        scope.Connect();

        string printerName = "";
        // Choose Printers from WMI Object Collections
        string query = string.Format("SELECT * FROM Win32_Printer ");
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);

        //ManagementObjectCollection coll = searcher.Get();
        foreach (ManagementObject printer in searcher.Get())
        {
            printerName = printer["Name"].ToString().ToLower();
            if (printerName.Equals(@"OOTOYA"))
            {
                //MessageBox.Show("Printer = " + printer["Name"]+" - " + printer["WorkOffline"]);
                if (printer["WorkOffline"].ToString().ToLower().Equals("false"))
                {
                    try
                    {
                        List<PrintSystemJobInfo> jobInfos = new List<PrintSystemJobInfo>();
                        LocalPrintServer server = new LocalPrintServer();
                        while (true)
                        {
                            foreach (var jobInfo in server.DefaultPrintQueue.GetPrintJobInfoCollection())
                            {
                                SpotTroubleUsingJobAttributes(jobInfo);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show( ex.ToString());
                    }
                }
                else
                {
                    MessageBox.Show("The printer is turned off");
                    //job.Dispose();
                }
            }
        }
    }
private void rptinhadon_Print(对象发送方,Microsoft.Reporting.WinForms.ReportPrintEventArgs e)
{
ManagementScope范围=新的ManagementScope(@“\root\cimv2”);
scope.Connect();
字符串printerName=“”;
//从WMI对象集合中选择打印机
字符串查询=string.Format(“从Win32_打印机中选择*);
ManagementObjectSearcher search=新的ManagementObjectSearcher(查询);
//ManagementObjectCollection coll=searcher.Get();
foreach(searcher.Get()中的ManagementObject打印机)
{
printerName=打印机[“名称”].ToString().ToLower();
if(printerName.Equals(@“OOTOYA”))
{
//MessageBox.Show(“Printer=“+Printer[“Name”]+”-“+Printer[“workufline”]);
if(打印机[“workufline”].ToString().ToLower().Equals(“false”))
{
尝试
{
List jobInfos=新列表();
LocalPrintServer服务器=新的LocalPrintServer();
while(true)
{
foreach(server.DefaultPrintQueue.GetPrintJobInfoCollection()中的var jobInfo)
{
使用JobAttributes(jobInfo)查找问题;
}
}
}
捕获(例外情况除外)
{
Show(例如ToString());
}
}
其他的
{
MessageBox.Show(“打印机已关闭”);
//job.Dispose();
}
}
}
}

列表项

Tks you,下次我会做得更准确Tks you,下次我会做得更准确