/** * * 非离线的打印机 * */ 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 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"); }