/// <summary>
 /// Добавляет новый принтер в общий список.
 /// </summary>
 /// <param name="newPrinter">Новый принтер</param>
 public void AddNewPrinter(PrinterDTO newPrinter)
 {
     if (newPrinter != null)
     {
         Printers.Add(newPrinter);
     }
 }
示例#2
0
 /// <summary>
 /// Добавляет новый принтер в список подсети.
 /// </summary>
 /// <param name="newPrinter">Новый принтер</param>
 public void AddPrinter(Printer newPrinter)
 {
     if (newPrinter != null)
     {
         Application.Current.Dispatcher.Invoke(() => Printers.Add(newPrinter));
     }
 }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static Printers GetPrinters()
        {
            try
            {
                LogHelper.LogDebug();
                Printers printers = new Printers();
                ManagementObjectSearcher   searchPrinters    = new ManagementObjectSearcher(_searchQueryPrinters);
                ManagementObjectCollection printerCollection = searchPrinters.Get();
                foreach (ManagementObject printer in printerCollection)
                {
                    PrinterSettings ps = new PrinterSettings();
                    ps.PrinterName = printer.Properties["Name"].Value.ToString();

                    if (ps.IsValid)
                    {
                        printers.Add(new Printer(ps.PrinterName, ps.PrinterName, ps.IsDefaultPrinter, ps.SupportsColor));
                    }
                }

                return(printers);
            }
            catch (Exception ex)
            {
                LogHelper.Log(ex);
                return(null);
            }
        }
示例#4
0
 public PosSettings()
 {
     foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
     {
         Printers.Add(printer);
     }
 }
        /// <summary>
        /// Resets demo printers.
        /// </summary>
        private void ResetDemoPrinters()
        {
            if (IsBlockedMode)
            {
                return;
            }

            Printers = new Printers();
            foreach (var item in demoPrinters)
            {
                Printers.Add(item);
            }
        }
示例#6
0
        private async Task ListPrinters()
        {
            Printers.Clear();

            var result = Service.GetAllPrinters();

            foreach (var item in result)
            {
                Printers.Add(item);
            }

            await Task.CompletedTask;
        }
        public void Add(BasePrinter basePrinter)
        {
            if (ReferenceEquals(basePrinter, null))
            {
                throw new ArgumentNullException(nameof(basePrinter));
            }

            Console.WriteLine("Enter printer name and model");
            basePrinter.Name  = Console.ReadLine();
            basePrinter.Model = Console.ReadLine();

            if (!Printers.Contains(basePrinter))
            {
                Printers.Add(basePrinter);
                Console.WriteLine("Printer added");
            }
        }
示例#8
0
        public ElvaSettings()
        {
            foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
            {
                Printers.Add(printer);
            }

            //var lsngs = Properties.Settings.Default.LANGS;
            //foreach (var item in lsngs)
            //{
            //    Langs.Add(item);
            //}

            // Langs = Tx.AvailableCultureNames.ToList();
            // Load Cultures
            LoadCultureInfos();
        }
        public void Start()
        {
            var config = _configService.GetConfiguration();

            IsActive = config.IsPrinterActivated;

            Printers.Clear();
            foreach (var printer in PrinterSettings.InstalledPrinters)
            {
                Printers.Add(printer.ToString());
            }

            IsActive = Printers.Contains(config.Printer);
            if (IsActive)
            {
                DefaultPrinter = config.Printer;
            }
        }
 public virtual void InitializeProperties()
 {
     try
     {
         Printers = PrintUtility.GetPrinters();
         SetLocalPrinter();
         var defaultPrintQueue = PrintUtility.GetDefaultPrintQueue(string.Empty);
         IsMarkPageNumbers = true;
         var defaultPrinterFullName = defaultPrintQueue.FullName;
         var defaultExists          = false;
         foreach (var printer in Printers)
         {
             if (printer.Name == defaultPrintQueue.Name)
             {
                 defaultExists = true;
                 break;
             }
         }
         if (!defaultExists)
         {
             Printers.Add(defaultPrintQueue);
             var temp = Printers;
             Printers = null;
             Printers = temp;
         }
         CurrentPrinterName = defaultPrinterFullName;
         CurrentPrinter     = Printers.First(e => e.FullName == defaultPrinterFullName);
         PrintOptionsSetterIsEnable(false);
         SetPrintError(false);
         var userPrintTicket = PrintUtility.GetUserPrintTicket(CurrentPrinter.FullName);
         if (userPrintTicket != null)
         {
             CurrentPrinter.UserPrintTicket = userPrintTicket;
         }
         SetCurrentPaper(CurrentPrinter.UserPrintTicket.PageMediaSize);
         SetPageOrientation(CurrentPrinter.UserPrintTicket.PageOrientation);
         ExecuteSetPrintingOptions(false);
     }
     catch (Exception ex)
     {
         SetPrintError(true);
     }
 }
示例#11
0
        /// <summary>
        /// 加载远程打印机(不需收银时)
        /// </summary>
        /// <returns></returns>
        public async Task LoadRemotePrinterAsync()
        {
            var printers = await Request.GetPrintersAsync(Business.Id);

            if (printers != null)
            {
                printers.ForEach(a =>
                {
                    var printer = new Printer {
                        Device = a
                    };
                    if (printer.Device.State == 1)
                    {
                        printer.Open();
                        Printers.Add(printer);
                    }
                });
            }
        }
示例#12
0
 /// <summary>
 /// Добавляет принтер в общий список устройств репозитория.
 /// </summary>
 /// <param name="printer">Принтер</param>
 public void AddPrinter(Printer printer)
 {
     if (printer != null)
     {
         Application.Current.Dispatcher.Invoke(() =>
         {
             Printers.Add(printer);
             SimpleSummary summary = ModelSummaries.FirstOrDefault(x => x.Parameter == printer.Model);
             if (summary is null)
             {
                 var newSummary = new SimpleSummary(printer.Model, 1);
                 ModelSummaries.Add(newSummary);
             }
             else
             {
                 summary.Count++;
             }
             ModelSummaries.Sort();
         });
         DeviceCount++;
     }
 }
        /// <summary>
        /// Constructor. Demo Mode.
        /// </summary>
        /// <param name="userPC">user PC name</param>
        /// <param name="documentName">document name</param>
        /// <param name="pageCount">page count</param>
        /// <param name="colorPageCost">color page cost</param>
        /// <param name="blackAndWhitePageCost">black and white page cost</param>
        /// <param name="isColorDocument">is color document flag</param>
        /// <param name="printers">list of printers</param>
        public PrintingControlModel(string userPC, string documentName, int pageCount, int colorPageCost, int blackAndWhitePageCost, bool isColorDocument, Printers printers)
        {
            IsTestMode         = true;
            NumberOfPages      = pageCount;
            PostScriptMetaData = new PostScriptMetaData()
            {
                Title = documentName, NumberOfPages = pageCount, HasColor = isColorDocument
            };
            FileHasColor          = isColorDocument;
            UserPC                = userPC;
            ColorPageCost         = colorPageCost;
            BlackAndWhitePageCost = blackAndWhitePageCost;
            Printers              = printers;
            SelectedPrinterIndex  = 0;
            ChosenPrinter         = Printers[0];
            IsControlsEnabled     = true;

            demoPrinters = new Printers();
            foreach (var item in printers)
            {
                demoPrinters.Add(item);
            }
        }
示例#14
0
        /// <summary>
        /// 重新加载内存数据
        /// </summary>
        /// <returns></returns>
        public async Task ReloadAsync()
        {
            using (var scope = DataBase.BeginLifetimeScope())
            {
                var service      = scope.Resolve <IUtilService>();
                var orderService = scope.Resolve <IOrderService>();
                Types.Clear();
                Products.Clear();
                DeskTypes.Clear();
                Desks.Clear();
                // 产品列表
                (await service.GetProductTypeAsync())?.ForEach(a =>
                {
                    Types.Add(a);
                    a.Products?.ForEach(b => Products.Add(b));
                });
                // 产品库存
                (await service.GetProductStocksAsync())?.ForEach(a =>
                {
                    var product = Products.FirstOrDefault(b => b.Id == a.ProductId);
                    if (product == null)
                    {
                        return;
                    }
                    product.Stock = a.Stock;
                });
                // 桌台
                (await service.GetDeskTypesAsync())?.ForEach(a =>
                {
                    DeskTypes.Add(a);
                    a.Desks?.ForEach(b => Desks.Add(b));
                });
                // 未完成订单
                orderService.GetUnfinishOrder()?.ForEach(order =>
                {
                    var desk = Desks.FirstOrDefault(a => a.Id == order.DeskId);
                    if (desk == null)
                    {
                        return;
                    }
                    desk.Order = order;
                });
                service.PubSubscribe("SystemMessage", "ResetDeskStatus");
                var clientPrinters = await service.GetAllAsync <ClientPrinter>();

                // 将删除的打印机关闭
                var delPrinter = new List <Printer>();
                Printers.ForEach(a =>
                {
                    var printer = clientPrinters?.FirstOrDefault(b => a.Device.Id == b.Id);
                    if (printer != null)
                    {
                        return;
                    }
                    a.Close();
                    delPrinter.Add(a);
                });
                delPrinter.ForEach(a => Printers.Remove(a));
                clientPrinters?.ForEach(item =>
                {
                    var printer = Printers.FirstOrDefault(a => a.Device.Id == item.Id);
                    if (printer == null)
                    {
                        printer = new Printer {
                            Device = item
                        };
                        Printers.Add(printer);
                    }
                    else
                    {
                        printer.Device = item;
                    }
                    if (printer.Device.State == 1)
                    {
                        printer.Open();
                    }
                    else
                    {
                        printer.Close();
                    }
                });
            }
        }
        /// <summary>
        /// Changes list of printers
        /// </summary>
        public void ChangePrinters()
        {
            LogHelper.LogDebug();

            // check if it's Demo mode
            if (IsTestMode)
            {
                ResetDemoPrinters();

                bool nocolored = false;
                CanPrintWithColor = true;
                Printers printers = null;
                if (PrintWithColor)
                {
                    printers = Printers.Colored;
                    if (printers == null || printers.Count < 1)
                    {
                        nocolored = true;
                    }
                }
                else
                {
                    printers = demoPrinters;
                }

                if (nocolored)
                {
                    LogHelper.LogDebug("No available color printers found. You are not allowed to print colored this time.");
                    WPFNotifier.Warning("No available color printers found. You are not allowed to print colored this time.");
                    CanPrintWithColor = false;
                    return;
                }

                if (printers == null || printers.Count < 1)
                {
                    LogHelper.LogDebug("No available printers found. You are not allowed to print this time.");
                    WPFNotifier.Warning("No available printers found. You are not allowed to print this time.");
                    return;
                }

                LogHelper.LogDebug("Add printers to combo : " + printers.Count);

                Printers.Clear();
                foreach (var name in printers.ToArray())
                {
                    LogHelper.LogDebug("Adding  : " + name);
                    Printers.Add(name);
                }

                LogHelper.LogDebug("Added printers to combo : " + Printers.Count);

                Thread.Sleep(100);
                SetDefaultPrinter();
            }
            else
            {
                try
                {
                    bool nocolored = false;
                    CanPrintWithColor = true;
                    Printers printers = null;
                    if (PrintWithColor)
                    {
                        printers = MainController.Singleton.AvailablePrinters.Colored;
                        if (printers == null || printers.Count < 1)
                        {
                            nocolored = true;
                        }
                    }
                    else
                    {
                        printers = MainController.Singleton.AvailablePrinters;
                    }

                    if (nocolored)
                    {
                        LogHelper.LogDebug("No available color printers found. You are not allowed to print colored this time.");
                        WPFNotifier.Warning("No available color printers found. You are not allowed to print colored this time.");
                        CanPrintWithColor = false;
                        return;
                    }

                    if (printers == null || printers.Count < 1)
                    {
                        LogHelper.LogDebug("No available printers found. You are not allowed to print this time.");
                        WPFNotifier.Warning("No available printers found. You are not allowed to print this time.");
                        return;
                    }

                    LogHelper.LogDebug("Add printers to combo : " + printers.Count);

                    MainController.Singleton.Dispatcher.Invoke(new Action(() =>
                    {
                        try
                        {
                            Printers.Clear();
                            foreach (var name in printers.ToArray())
                            {
                                LogHelper.LogDebug("Adding  : " + name);
                                Printers.Add(name);
                            }

                            LogHelper.LogDebug("Added printers to combo : " + Printers.Count);
                        }
                        catch (Exception ex)
                        {
                            WPFNotifier.Error("XXX.", null, ex);
                        }
                    }), DispatcherPriority.Background);

                    Thread.Sleep(100);
                    SetDefaultPrinter();
                }
                catch (Exception ex)
                {
                    WPFNotifier.Error("This printer is not available now. Try to use one of the other printers.", null, ex);
                    Close();
                }
            }
        }