This class encapsulates a printer device, and its associated settings.
First, it offers a static property to retrieve the list of the names
of the InstalledPrinters. When you construct a
printer settings object, you set the PrinterName
property to one of these values to indicate which printer to use. The
default is the system default printer. Whether you set the name or
leave the default, all the properties will be correctly set to the
defaults for that printer. You can determine if it is currently using
the default printer by checking the
IsDefaultPrinter property.
You can then override any of those values. This might include the
Duplex setting, the number of
Copies to print, whether to
Collate the output, and the
PrintRange. If you set the range to
PrintRange.SomePages, a simple range can be set
with the FromPage and ToPage
properties. (Note that the
System.Windows.Forms.PrintDialog handles the page
printing for you.
The default PageSettings for the printer can be
retrieved, and you can also use properties such as
PaperSizes, PaperSources, and
PrinterResolutions to determine the options for
overriding some of those default PageSettings.
There are also three properties that tell you about the capabilities
of the printer: CanDuplex,
SupportsColor, and IsPlotter.
To help determine how a document will be printed, you can use the
CreateMeasurementGraphics() method to create a
reference System.Drawing.Graphics surface. This
can be used to determine the layout for your pages but is not the
actual printer device surface.
See PrintDocument for more information on how to
use the PrinterSettings to print a document.
public class PrinterSettings : ICloneable {
// Public Constructors
public PrinterSettings();
// Public Static Properties
public static StringCollection InstalledPrinters{get; }
// Public Instance Properties
public bool CanDuplex{get; }
public bool Collate{set; get; }
public short Copies{set; get; }
public PageSettings DefaultPageSettings{get; }
public Duplex Duplex{set; get; }
public int FromPage{set; get; }
public bool IsDefaultPrinter{get; }
public bool IsPlotter{get; }
public bool IsValid{get; }
public int LandscapeAngle{get; }
public int MaximumCopies{get; }
public int MaximumPage{set; get; }
public int MinimumPage{set; get; }
public PaperSizeCollection PaperSizes{get; }
public PaperSourceCollection PaperSources{get; }
public string PrinterName{set; get; }
public PrinterResolutionCollection PrinterResolutions{get; }
public PrintRange PrintRange{set; get; }
public bool PrintToFile{set; get; }
public bool SupportsColor{get; }
public int ToPage{set; get; }
// Public Instance Methods
public object Clone(); // implements ICloneable
public Graphics CreateMeasurementGraphics();
public IntPtr GetHdevmode();
public IntPtr GetHdevmode(PageSettings pageSettings);
public IntPtr GetHdevnames();
public void SetHdevmode(IntPtr hdevmode);
public void SetHdevnames(IntPtr hdevnames);
public override string ToString(); // overrides object
}