using System;<br />using System.Collections.Generic;<br />using System.Windows.Forms;<br />using System.Drawing.Printing;<br />namespace FindPrinterDemo<br />{<br /> public partial class Demo : Form<br /> {<br /> public Demo()<br /> {<br /> this.Text= "本機印表機列表";<br /> ListBox fListBox = new ListBox();<br /> fListBox.Dock = DockStyle.Fill;<br /> foreach (String fPrinterName in LocalPrinter.GetLocalPrinters())<br /> fListBox.Items.Add(fPrinterName);<br /> this.Controls.Add(fListBox);<br /> }<br /> }<br /> /// <summary><br /> /// 標題:擷取本機印表機資訊<br /> /// 作者:肖小勇<br /> /// 日期:2009-09-22<br /> /// </summary><br /> public class LocalPrinter<br /> {<br /> private static PrintDocument fPrintDocument = new PrintDocument();<br /> /// <summary><br /> /// 擷取本機預設印表機名稱<br /> /// </summary><br /> public static String DefaultPrinter<br /> {<br /> get { return fPrintDocument.PrinterSettings.PrinterName; }<br /> }<br /> /// <summary><br /> /// 擷取原生印表機列表。列表中的第一項就是預設印表機。<br /> /// </summary><br /> public static List<String> GetLocalPrinters()<br /> {<br /> List<String> fPrinters = new List<string>();<br /> fPrinters.Add(DefaultPrinter); // 預設印表機始終出現在列表的第一項<br /> foreach (String fPrinterName in PrinterSettings.InstalledPrinters)<br /> {<br /> if (!fPrinters.Contains(fPrinterName))<br /> fPrinters.Add(fPrinterName);<br /> }<br /> return fPrinters;<br /> }<br /> }<br />}