/// <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; } }
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); }