CHANDRA
CHANDRA

Reputation: 4928

How to set default Printer dynamically in wpf

I wrote to code to get default Printer name and all Printer name What i installed in my set.But i want to change my default Printer in name dynamically.

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

It's Output will be like this. Result

In above figure the default printer name is "CutePDF Writer".But i want to change "SnagiIt 8" as Default Printer. What should i do for that.

Upvotes: 0

Views: 3334

Answers (1)

ASHOK A
ASHOK A

Reputation: 2026

Try this it will help you.

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

Upvotes: 2

Related Questions