SoFunction
Updated on 2025-03-01

Introduction to how to get printer list in C#

Method 1

Step 1: Add a quote

using ;

Step 2: Code

public static List<string> GetPrintList()
{
    List<string> lt = new List<string>();
    LocalPrintServer printServer = new LocalPrintServer();
    PrintQueueCollection printQueuesOnLocalServer = (new[] {  });
    foreach (PrintQueue printer in printQueuesOnLocalServer)
        ();
    return lt;
}

Method 2

Need to be introduced

accomplish

1. Get the printer list
2. Get the default printer
3. Set the default printer

On the code

    public class PrinterExample
    {
        /// &lt;summary&gt;
        /// Set the default printer        /// &lt;/summary&gt;
        /// &lt;param name="Name"&gt;&lt;/param&gt;
        /// &lt;returns&gt;&lt;/returns&gt;
        [DllImport("")]
        public static extern bool SetDefaultPrinter(String Name); //Calling win api to set the printer with the specified name as the default printer
        /// &lt;summary&gt;
        /// Get the default printer        /// &lt;/summary&gt;
        /// &lt;returns&gt;&lt;/returns&gt;
        public static string GetDefaultPrinter()
        {
            PrintDocument print = new PrintDocument();
            string defaultName = ;//Default printer name            return defaultName;
        }

        /// &lt;summary&gt;
        /// Get all local printers        /// &lt;/summary&gt;
        /// &lt;returns&gt;&lt;/returns&gt;
        public static List&lt;String&gt; GetLocalPrinters()
        {
            List&lt;String&gt; printer_names = new List&lt;String&gt;();
           
            foreach (String item in )
            {
                printer_names.Add(item);

            }
            return printer_names;
        }

        /// &lt;summary&gt;
        /// Get all local printers        /// &lt;/summary&gt;
        /// &lt;returns&gt;&lt;/returns&gt;
        public static List&lt;String&gt; GetLocalPrinters2()
        {
            List&lt;String&gt; printer_names = new List&lt;String&gt;();

            ManagementObjectCollection queryCollection;
            string _classname = "SELECT * FROM Win32_Printer";

            Dictionary&lt;string, ManagementObject&gt; dict = new Dictionary&lt;string, ManagementObject&gt;();
            ManagementObjectSearcher query = new ManagementObjectSearcher(_classname);
            queryCollection = ();

            foreach (ManagementObject mo in queryCollection)
            {
                string oldName = mo["Name"].ToString();
                printer_names.Add(oldName);


            }
            return printer_names;
        }
    }

This is all about this article about getting the printer list in C#. I hope it will be helpful to everyone's learning and I hope everyone will support me more.