Exemple #1
0
        // получить статус принтера
        public static string GetPrinterStatus(string printerName)
        {
            PrintQueue printer = GetPrintQueueByName(printerName);

            if (printer == null)
            {
                return(string.Concat("The printer \"", printerName, "\" is not installed."));
            }

            PrintQueueStatus status = printer.QueueStatus;

            if (status == PrintQueueStatus.None)
            {
                return("Ok");
            }
            else
            {
                return(status.ToString());
            }
        }
        private string GetIconQueueStatus(PrintQueueStatus status, bool isDefault)
        {
            string data   = "";
            string normal = isDefault ? "printer_ready" : "printer_lg";

            switch (status)
            {
            case PrintQueueStatus.Busy:
                data = "printer_busy";
                break;

            case PrintQueueStatus.DoorOpen:
                data = "printer_error";
                break;

            case PrintQueueStatus.Error:
                data = "printer_error";
                break;

            case PrintQueueStatus.Initializing:
                data = "printer_busy";
                break;

            case PrintQueueStatus.IOActive:
                data = "printer_busy";
                break;

            case PrintQueueStatus.ManualFeed:
                data = "printer_waiting";
                break;

            case PrintQueueStatus.None:
                data = normal;
                break;

            case PrintQueueStatus.NotAvailable:
                data = "printer_error";
                break;

            case PrintQueueStatus.NoToner:
                data = "printer_error";
                break;

            case PrintQueueStatus.Offline:
                data = "printer_error";
                break;

            case PrintQueueStatus.OutOfMemory:
                data = "printer_error";
                break;

            case PrintQueueStatus.OutputBinFull:
                data = "printer_error";
                break;

            case PrintQueueStatus.PagePunt:
                data = "printer_error";
                break;

            case PrintQueueStatus.PaperJam:
                data = "printer_error";
                break;

            case PrintQueueStatus.PaperOut:
                data = "printer_error";
                break;

            case PrintQueueStatus.PaperProblem:
                data = "printer_error";
                break;

            case PrintQueueStatus.Paused:
                data = "printer_waiting";
                break;

            case PrintQueueStatus.PendingDeletion:
                data = "printer_busy";
                break;

            case PrintQueueStatus.PowerSave:
                data = "printer_waiting";
                break;

            case PrintQueueStatus.Printing:
                data = "printer_busy";
                break;

            case PrintQueueStatus.Processing:
                data = "printer_busy";
                break;

            case PrintQueueStatus.ServerUnknown:
                data = "printer_error";
                break;

            case PrintQueueStatus.TonerLow:
                data = normal;
                break;

            case PrintQueueStatus.UserIntervention:
                data = "printer_error";
                break;

            case PrintQueueStatus.Waiting:
                data = "printer_busy";
                break;

            case PrintQueueStatus.WarmingUp:
                data = "printer_busy";
                break;

            default:
                // Control should never reach here
                return(null);
            }

            return("pack://application:,,,/Daytimer.Images;component/Images/" + data + ".png");
        }
        private string GetFriendlyQueueStatus(PrintQueueStatus status)
        {
            switch (status)
            {
            case PrintQueueStatus.Busy:
                return("Busy");

            case PrintQueueStatus.DoorOpen:
                return("Door Open");

            case PrintQueueStatus.Error:
                return("Error");

            case PrintQueueStatus.Initializing:
                return("Initializing");

            case PrintQueueStatus.IOActive:
                return("Exchanging data with server");

            case PrintQueueStatus.ManualFeed:
                return("Waiting for manual feed");

            case PrintQueueStatus.None:
                return("Ready");

            case PrintQueueStatus.NotAvailable:
                return("Status Unavailable");

            case PrintQueueStatus.NoToner:
                return("Out of toner");

            case PrintQueueStatus.Offline:
                return("Offline");

            case PrintQueueStatus.OutOfMemory:
                return("Out of memory");

            case PrintQueueStatus.OutputBinFull:
                return("Output bin full");

            case PrintQueueStatus.PagePunt:
                return("Unable to print current page");

            case PrintQueueStatus.PaperJam:
                return("Paper Jam");

            case PrintQueueStatus.PaperOut:
                return("Out of paper");

            case PrintQueueStatus.PaperProblem:
                return("Paper Problem");

            case PrintQueueStatus.Paused:
                return("Print queue paused");

            case PrintQueueStatus.PendingDeletion:
                return("Deleting print job");

            case PrintQueueStatus.PowerSave:
                return("Power saving mode");

            case PrintQueueStatus.Printing:
                return("Printing");

            case PrintQueueStatus.Processing:
                return("Not Responding");

            case PrintQueueStatus.ServerUnknown:
                return("Error");

            case PrintQueueStatus.TonerLow:
                return("Low toner");

            case PrintQueueStatus.UserIntervention:
                return("Waiting for user action");

            case PrintQueueStatus.Waiting:
                return("Waiting for print job");

            case PrintQueueStatus.WarmingUp:
                return("Warming Up");

            default:
                // Control should never reach here
                return(null);
            }
        }
        /// <summary>
        /// Converts print queue statuc to string
        /// </summary>
        /// <param name="status">Print queue status</param>
        /// <returns>String represents status</returns>
        internal static string SpotTroubleUsingQueueAttributes(PrintQueueStatus status)
        {
            String statusReport = string.Empty;
            if ((status & PrintQueueStatus.PaperProblem) == PrintQueueStatus.PaperProblem)
            {
                statusReport = statusReport + "Has a paper problem. ";
            }
            if ((status & PrintQueueStatus.NoToner) == PrintQueueStatus.NoToner)
            {
                statusReport = statusReport + "Is out of toner. ";
            }
            if ((status & PrintQueueStatus.DoorOpen) == PrintQueueStatus.DoorOpen)
            {
                statusReport = statusReport + "Has an open door. ";
            }
            if ((status & PrintQueueStatus.Error) == PrintQueueStatus.Error)
            {
                statusReport = statusReport + "Is in an error state. ";
            }
            if ((status & PrintQueueStatus.NotAvailable) == PrintQueueStatus.NotAvailable)
            {
                statusReport = statusReport + "Is not available. ";
            }
            if ((status & PrintQueueStatus.Offline) == PrintQueueStatus.Offline)
            {
                statusReport = statusReport + "Is off line. ";
            }
            if ((status & PrintQueueStatus.OutOfMemory) == PrintQueueStatus.OutOfMemory)
            {
                statusReport = statusReport + "Is out of memory. ";
            }
            if ((status & PrintQueueStatus.PaperOut) == PrintQueueStatus.PaperOut)
            {
                statusReport = statusReport + "Is out of paper. ";
            }
            if ((status & PrintQueueStatus.OutputBinFull) == PrintQueueStatus.OutputBinFull)
            {
                statusReport = statusReport + "Has a full output bin. ";
            }
            if ((status & PrintQueueStatus.PaperJam) == PrintQueueStatus.PaperJam)
            {
                statusReport = statusReport + "Has a paper jam. ";
            }
            if ((status & PrintQueueStatus.Paused) == PrintQueueStatus.Paused)
            {
                statusReport = statusReport + "Is paused. ";
            }
            if ((status & PrintQueueStatus.TonerLow) == PrintQueueStatus.TonerLow)
            {
                statusReport = statusReport + "Is low on toner. ";
            }
            if ((status & PrintQueueStatus.UserIntervention) == PrintQueueStatus.UserIntervention)
            {
                statusReport = statusReport + "Needs user intervention. ";
            }

            if (string.IsNullOrEmpty(statusReport)) statusReport = "Ready";
            return statusReport;
        }