如何在wpf中动态设置默认打印机

时间:2012-06-21 05:19:58

标签: c# windows printing

我写了代码来获取默认打印机名称和所有打印机名称我在我的设置中安装了什么。但我想动态更改我的默认打印机名称。

using System.Drawing.Printing;
public MainWindow()
    {
        this.InitializeComponent();

         PrinterSettings settings = new PrinterSettings();
         string DefultPrinterName= settings.PrinterName;


        foreach (string item in PrinterSettings.InstalledPrinters)
        {
            com_Printers.Items.Add(item);
        }
    }

它的输出将是这样的。 Result

在上图中,默认打印机名称为“CutePDF Writer”。但我想将“SnagiIt 8”更改为默认打印机。我应该怎么做。

1 个答案:

答案 0 :(得分:2)

试试这会对你有帮助。

  var query = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
                var printers = query.Get();                   
                foreach (ManagementObject printer in printers)
                {
                    if (printer["name"].ToString() == combox_pinter.SelectedItem.ToString())
                    {
                        printer.InvokeMethod("SetDefaultPrinter", new object[] { combox_pinter.SelectedItem.ToString() });
                    }
                }