<PackageReference Include="System.Drawing.Common" Version="10.0.0-preview.1.25080.3" />

PrintDocument

public class PrintDocument : Component
Defines a reusable object that sends output to a printer, when printing from a Windows Forms application.
using System.ComponentModel; using System.Runtime.CompilerServices; namespace System.Drawing.Printing { [NullableContext(1)] [Nullable(0)] [DefaultProperty("DocumentName")] [DefaultEvent("PrintPage")] [SRDescription("PrintDocumentDesc")] public class PrintDocument : Component { private string _documentName = "document"; [Nullable(2)] private PrintEventHandler _beginPrintHandler; [Nullable(2)] private PrintEventHandler _endPrintHandler; [Nullable(2)] private PrintPageEventHandler _printPageHandler; [Nullable(2)] private QueryPageSettingsEventHandler _queryHandler; private PrinterSettings _printerSettings = new PrinterSettings(); private PageSettings _defaultPageSettings; [Nullable(2)] private PrintController _printController; private bool _originAtMargins; private bool _userSetPageSettings; [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] [SRDescription("PDOCdocumentPageSettingsDescr")] public PageSettings DefaultPageSettings { get { return _defaultPageSettings; } set { _defaultPageSettings = (value ?? new PageSettings()); _userSetPageSettings = true; } } [DefaultValue("document")] [SRDescription("PDOCdocumentNameDescr")] public string DocumentName { get { return _documentName; } set { _documentName = (value ?? ""); } } [DefaultValue(false)] [SRDescription("PDOCoriginAtMarginsDescr")] public bool OriginAtMargins { get { return _originAtMargins; } set { _originAtMargins = value; } } [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] [SRDescription("PDOCprintControllerDescr")] public PrintController PrintController { get { return _printController ?? (_printController = new StandardPrintController()); } set { _printController = value; } } [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] [SRDescription("PDOCprinterSettingsDescr")] public PrinterSettings PrinterSettings { get { return _printerSettings; } set { if (value == null) value = new PrinterSettings(); _printerSettings = value; if (!_userSetPageSettings) _defaultPageSettings = _printerSettings.DefaultPageSettings; } } [SRDescription("PDOCbeginPrintDescr")] public event PrintEventHandler BeginPrint { add { _beginPrintHandler = (PrintEventHandler)Delegate.Combine(_beginPrintHandler, value); } remove { _beginPrintHandler = (PrintEventHandler)Delegate.Remove(_beginPrintHandler, value); } } [SRDescription("PDOCendPrintDescr")] public event PrintEventHandler EndPrint { add { _endPrintHandler = (PrintEventHandler)Delegate.Combine(_endPrintHandler, value); } remove { _endPrintHandler = (PrintEventHandler)Delegate.Remove(_endPrintHandler, value); } } [SRDescription("PDOCprintPageDescr")] public event PrintPageEventHandler PrintPage { add { _printPageHandler = (PrintPageEventHandler)Delegate.Combine(_printPageHandler, value); } remove { _printPageHandler = (PrintPageEventHandler)Delegate.Remove(_printPageHandler, value); } } [SRDescription("PDOCqueryPageSettingsDescr")] public event QueryPageSettingsEventHandler QueryPageSettings { add { _queryHandler = (QueryPageSettingsEventHandler)Delegate.Combine(_queryHandler, value); } remove { _queryHandler = (QueryPageSettingsEventHandler)Delegate.Remove(_queryHandler, value); } } public PrintDocument() { _defaultPageSettings = new PageSettings(_printerSettings); } protected internal virtual void OnBeginPrint(PrintEventArgs e) { _beginPrintHandler?.Invoke(this, e); } protected internal virtual void OnEndPrint(PrintEventArgs e) { _endPrintHandler?.Invoke(this, e); } protected internal virtual void OnPrintPage(PrintPageEventArgs e) { _printPageHandler?.Invoke(this, e); } protected internal virtual void OnQueryPageSettings(QueryPageSettingsEventArgs e) { _queryHandler?.Invoke(this, e); } public void Print() { PrintController.Print(this); } public override string ToString() { return "[PrintDocument " + DocumentName + "]"; } } }