Class Description
PrintDocument Allows you to define an object that sends output to a printer.
PrintEventArgs Provides all the needed information for the BeginPrint and EndPrint events.
PrintPageEventArgs Provides all the needed information for the PrintPage event.
QueryPageSettingsEventArgs Provides information for the QueryPageSettings event.
PrintController Controls how a PrintDocument is printed.
StandardPrintController Derived from PrintController.
PreviewPrintController Derived from PrintController.
PreviewPageInfo Used extensively by the PreviewPrintController. This class specifies preview information for a single page.
PageSettings Deals with settings specific to a single, printed page.
Margins Allows you to specify the margins of a printed page. The top, left, right, and bottom properties are returned in hundredths of an inch.
MarginsConverter Allows you to convert a Margins object to a different type, as well as different types into a Margins object.
PaperSize Specifies the size of a piece of paper. When used with a PageSettings object, it refers to the paper size for a page. When used with PrinterSettings, it allows you to retrieve the paper sizes available on the printer.
PaperSizeCollection A collection of PaperSize objects.
PaperSource Like the PaperSize class, PaperSource is used by a PageSettings object and a PrinterSettings object. When used by the former, it allows you to retrieve the paper source for a specific page. When used by the latter, it allows you to retrieve all the source trays used by the printer.
PaperSourceCollection A collection of PaperSource objects.
PrinterSettings Specifies how a document is printed, including the printer the document is printed to. It is PrintDocument-specific.
PrinterResolution Allows you to retrieve the horizontal and vertical DPI, as well as the actual printer resolution (draft, high, low, and so on).
PrinterResolutionCollection A collection of PrinterResolution objects.
InvalidPrinterException Represents the exception that will be thrown if you attempt to access a printer using invalid settings.
PrintingPermission Controls access to printers.
PrintingPermissionAttribute Allows declarative printing permission checks.

Table 1 Explore .NET's Numerous Printing Classes. You can handle many print jobs programmatically using the .NET Framework's System.Drawing.Printing namespace, which consists of more than 20 classes, seven enumerations, and three delegates. Take a look at this brief introduction to each of the classes.