Retrieving a list of available printers using .NET 2.0 is quite easy since it’s supported by the framework itself, and there’s no need to mess with unmanaged code.
First add the using statement:
using System.Drawing.Printing;
Next we show the number of printers installed:
MessageBox.Show(PrinterSettings.InstalledPrinters.Count + " printers found:");
And now we loop through the InstalledPrinters collection and list all the printers:
foreach (string printerName in PrinterSettings.InstalledPrinters)
{
MessageBox.Show(printerName.ToString());
}
Here’s the entire code in one page:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Printing;
namespace Labs
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show(PrinterSettings.InstalledPrinters.Count + " printers found:");
foreach (string printerName in PrinterSettings.InstalledPrinters)
{
MessageBox.Show(printerName.ToString());
}
}
}
}