コード例 #1
0
        /// <summary>
        /// Инициализация параметров подключаемого устройства
        /// </summary>
        /// <param name="deviceProps">Контейнер параметров устройства</param>
        /// <param name="device">Интерфейс устройства</param>
        private void InitPrintableDevice(PrintableDeviceProperties deviceProps,
                                         IPrintableDevice device)
        {
            InitConnectableDevice(deviceProps, device);

            // прочие
            device.PrinterInfo.TapeWidth      = deviceProps.TapeWidth;
            device.PrinterInfo.TopMargin      = deviceProps.TopMargin;
            device.PrinterInfo.SlipFormLength = deviceProps.SlipHeight;
            device.PrinterInfo.Kind           = deviceProps.PaperType;
            device.PrinterInfo.DsrFlowControl = deviceProps.DtrEnabled;

            // заголовок и подвал чека
            device.PrintFooter = deviceProps.PrintFooter;
            if (device.PrintFooter)
            {
                device.DocumentFooter = deviceProps.Footer;
            }

            device.PrintHeader = deviceProps.PrintHeader;
            if (device.PrintHeader)
            {
                device.DocumentHeader = deviceProps.Header;
            }

            device.PrintGraphicHeader = deviceProps.PrintGraphicHeader;
            if (device.PrintGraphicHeader)
            {
                device.GraphicHeader = deviceProps.GraphicHeader;
            }

            device.PrintGraphicFooter = deviceProps.PrintGraphicFooter;
            if (device.PrintGraphicFooter)
            {
                device.GraphicFooter = deviceProps.GraphicFooter;
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: radtek/POSDeviceManager
        static void Main(string[] args)
        {
            Console.WriteLine("POS device manager test utility");
            Console.WriteLine("version 2.0");
            Console.WriteLine();

            try
            {
                if (args.Length == 0)
                {
                    ViewHelp();
                }
                else
                {
                    string host = args.Length > 0 ? args[0] : "localhost";
                    using (DeviceManagerClient dmc = new DeviceManagerClient(host))
                    {
                        dmc.Login();
                        string deviceID = args.Length > 1 ? args[1] : "”стройство1";
                        dmc.Capture(deviceID, WaitConstant.Infinite);
                        try
                        {
                            IPrintableDevice device = (IPrintableDevice)dmc[deviceID];
                            Console.WriteLine(string.Format("Device status: {0}",
                                                            device.Active ? "active" : "inactive"));

                            if (!device.Active)
                            {
                                Console.WriteLine("Trying to re-activate.");
                                device.Active = true;
                                if (!device.Active)
                                {
                                    Console.WriteLine("Re-activate failed.");
                                }
                                else
                                {
                                    Console.WriteLine("Re-activate succeeded.");
                                }
                            }

                            if (device.Active)
                            {
                                PaperOutStatus paperStatus = device.PrinterStatus.PaperOut;
                                if (ProcessErrorCode(device.ErrorCode, false))
                                {
                                    Console.WriteLine(string.Format("Paper: {0}", paperStatus));
                                    if (paperStatus == PaperOutStatus.Present || paperStatus == PaperOutStatus.OutAfterActive)
                                    {
                                        XmlDocument xmlDoc = new XmlDocument();
                                        xmlDoc.Load(args.Length > 2 ? args[2] : "receipt.xml");
                                        device.Print(xmlDoc.OuterXml);
                                        ProcessErrorCode(device.ErrorCode, true);
                                    }
                                    else
                                    {
                                        Console.WriteLine("Printer not ready.");
                                    }
                                }
                            }
                        }
                        finally
                        {
                            dmc.Release(deviceID);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception.");
                Console.WriteLine(e.Message);
                Console.WriteLine("View stack trace (y/n)?:");
                ConsoleKeyInfo info = Console.ReadKey(true);
                Console.WriteLine();
                if (info.Key == ConsoleKey.Y)
                {
                    Console.WriteLine(e.StackTrace);
                }
            }

            Console.WriteLine("Done. Press any key.");
            Console.ReadKey(true);
        }