/**
 *
 * 非离线的打印机
 *
 */
            public static List <PrintOneInfo> GetLocalPrintersInfoDetail()
            {
                PrintOneInfo        poi       = null;
                List <PrintOneInfo> fPrinters = new List <PrintOneInfo>();

#if true
                poi = new PrintOneInfo(DefaultPrinter(),
                                       PrintType.PcPrint,
                                       PrintFrom.Self,
                                       Printer.GetPrinterStatus(DefaultPrinter()));
                /*----------------------------------------------------------------------------------*/
                if (poi.IsOffline() == false)
                {
                    fPrinters.Add(poi); //默认打印机始终出现在列表的第一项
                }
                /*----------------------------------------------------------------------------------*/
#endif

                foreach (String fPrinterName in PrinterSettings.InstalledPrinters)
                {
                    poi = new PrintOneInfo(fPrinterName,
                                           PrintType.PcPrint,
                                           PrintFrom.Self,
                                           Printer.GetPrinterStatus(fPrinterName));
                    if (!fPrinters.Contains(poi) && (poi.IsOffline() == false))
                    {
                        fPrinters.Add(poi);
                    }
                }
                /*----------------------------------------------------------------------------------*/


                return(fPrinters);
            }
            public static List <PrintOneInfo> GetLocalPrintersInfo()
            {
                PrintOneInfo        poi       = null;
                List <PrintOneInfo> fPrinters = new List <PrintOneInfo>();

                poi = new PrintOneInfo(DefaultPrinter(),
                                       PrintType.PcPrint,
                                       PrintFrom.Self,
                                       false,
                                       false);
                fPrinters.Add(poi); //默认打印机始终出现在列表的第一项
                foreach (String fPrinterName in PrinterSettings.InstalledPrinters)
                {
                    poi = new PrintOneInfo(
                        fPrinterName,
                        PrintType.PcPrint,
                        PrintFrom.Self,
                        false,
                        false);
                    if (!fPrinters.Contains(poi))
                    {
                        fPrinters.Add(poi);
                    }
                }
                return(fPrinters);
            }
        public static void SavePrinter2Disk()
        {
            List <PrintOneInfo> so = PrintLocalPrint.LocalPrinter.GetLocalPrintersInfoDetail_ALL();

            XmlDocument    doc = new XmlDocument();
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);

            doc.AppendChild(dec);

            XmlElement root = doc.CreateElement("Printers");

            for (int i = 0; i < so.Count; i++)
            {
                PrintOneInfo poi = (PrintOneInfo)so[i];
                if (poi.IsOffline() == false)
                {
                    XmlNode    node            = doc.CreateElement("Printer");
                    XmlElement elementHostName = doc.CreateElement("PrinterName");
                    elementHostName.InnerText = poi.mPrintName;
                    XmlElement elementHostType = doc.CreateElement("PrinterType");
                    elementHostType.InnerText = poi.mPrintType.ToString();
                    node.AppendChild(elementHostName);
                    node.AppendChild(elementHostType);
                    root.AppendChild(node);
                }
            }

            doc.AppendChild(root);
            doc.Save("Printers.xml");
        }
예제 #4
0
 public UserControlNetPrintItem(PrintOneInfo poi)
 {
     this.mPrintInfo = poi;
     InitializeComponent();
     this.labelName.Text = "打印机名:" + poi.mPrintName;
     this.SetPrinterStatus();
     this.SetPrinterStatus();
     this.label3.Text = "正在刷新中";
 }
예제 #5
0
        private void FormNetPrint_Load(object sender, EventArgs e)
        {
            PrintServer ps = this.mServer.PrintSvr;

            for (int i = 0; i < ps.ListPrint.Count; i++)
            {
                PrintOneInfo poi = (PrintOneInfo)(ps.ListPrint[i]);
                this.mNetPrintList.Add(poi);
            }
        }
예제 #6
0
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            if (obj.GetType() != typeof(PrintOneInfo))
            {
                return(false);
            }
            PrintOneInfo c = obj as PrintOneInfo;

            return(this.mPrintName == c.mPrintName && this.mPrintType == c.mPrintType);
        }
예제 #7
0
 public void Add(PrintOneInfo poi)
 {
     this.flowLayoutPanelList.Controls.Add(new UserControlNetPrintItem(poi));
 }