다음을 통해 공유


PrintDialog 구성 요소 개요(Windows Forms .NET)

Windows Forms 인쇄는 주로 PrintDocument 구성 요소를 사용하여 사용자가 인쇄할 수 있도록 합니다. PrintPreviewDialog 컨트롤, PrintDialogPageSetupDialog 구성 요소는 Windows 운영 체제 사용자에게 친숙한 그래픽 인터페이스를 제공합니다.

PrintDialog 구성 요소는 프린터를 선택하고, 인쇄할 페이지를 선택하고, Windows 기반 애플리케이션에서 다른 인쇄 관련 설정을 결정하는 데 사용되는 미리 구성된 대화 상자입니다. 고유한 대화 상자를 구성하는 대신 프린터 및 인쇄 관련 설정을 위한 간단한 솔루션입니다. 사용자가 모두 인쇄, 선택한 페이지 범위 인쇄 또는 선택 영역 인쇄 등 문서의 대부분을 인쇄할 수 있도록 할 수 있습니다. 표준 Windows 대화 상자를 사용하여 기본 기능이 사용자에게 익숙한 애플리케이션을 만듭니다. PrintDialog 구성 요소는 CommonDialog 클래스에서 상속됩니다.

일반적으로 PrintDocument 구성 요소의 새 인스턴스를 만들고, PrinterSettingsPageSettings 클래스를 사용하여 인쇄할 항목을 설명하는 속성을 설정합니다. Print 메서드에 대한 호출은 실제로 문서를 인쇄합니다.

구성 요소 사용

PrintDialog.ShowDialog 메서드를 사용하여 런타임에 대화 상자를 표시합니다. 이 구성 요소에는 단일 인쇄 작업(PrintDocument 클래스) 또는 개별 프린터의 설정(PrinterSettings 클래스) 중 하나와 관련된 속성이 있습니다. 둘 중 하나를 차례로 여러 프린터에서 공유할 수 있습니다.

표시 대화 상자 메서드를 사용하면 폼에 인쇄 대화 상자를 추가할 수 있습니다. PrintDialog 구성 요소는 Visual Studio에서 Windows Forms 디자이너의 아래쪽에 있는 트레이에 나타납니다.

런타임에 PrintDialog에서 사용자 입력을 캡처하는 방법

디자인 타임에 인쇄와 관련된 옵션을 설정할 수 있습니다. 경우에 따라 런타임에 이러한 옵션을 변경하려고 할 수 있습니다. 대부분 사용자가 선택했기 때문일 수 있습니다. PrintDialog 구성 요소와 PrintDocument 구성 요소를 사용하여 문서를 인쇄하기 위한 사용자 입력을 캡처할 수 있습니다. 다음 단계에서는 문서의 인쇄 대화 상자를 표시하는 방법을 보여줍니다.

  1. PrintDialog 구성 요소 및 PrintDocument 구성 요소를 양식에 추가합니다.

  2. PrintDialogDocument 속성을 양식에 추가된 PrintDocument로 설정합니다.

    PrintDialog1.Document = PrintDocument1
    
    printDialog1.Document = printDocument1;
    
  3. ShowDialog 메서드를 사용하여 PrintDialog 구성 요소를 표시합니다.

    If PrintDialog1.ShowDialog() = DialogResult.OK Then
        PrintDocument1.Print()
    End If
    
    // display show dialog and if user selects "Ok" document is printed
    if (printDialog1.ShowDialog() == DialogResult.OK)
        printDocument1.Print();
    
  4. 대화 상자에서 사용자의 인쇄 선택 항목이 PrintDocument 구성 요소의 PrinterSettings 속성에 복사됩니다.

인쇄 작업을 만드는 방법

Windows Forms에서 인쇄의 기초는 PrintDocument 구성 요소, 특히 PrintPage 이벤트입니다. PrintPage 이벤트를 처리하는 코드를 작성하여 인쇄할 내용과 인쇄 방법을 지정할 수 있습니다. 다음 단계에서는 인쇄 작업을 만드는 방법을 보여줍니다.

  1. PrintDocument 구성 요소를 양식에 추가합니다.

  2. PrintPage 이벤트를 처리할 코드를 작성합니다.

    고유한 인쇄 논리를 코딩해야 합니다. 또한 인쇄할 재질을 지정해야 합니다.

    다음 코드 예제에서는 인쇄할 재질로 PrintPage 이벤트 처리기에서 빨간색 사각형 모양의 샘플 그래픽이 생성됩니다.

    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        e.Graphics.FillRectangle(Brushes.Red, New Rectangle(100, 100, 100, 100))
    End Sub
    
    private void PrintDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) =>
        e.Graphics.FillRectangle(Brushes.Red, new Rectangle(100, 100, 100, 100));
    

BeginPrintEndPrint 이벤트에 대한 코드를 작성할 수도 있습니다. 각 페이지가 인쇄될 때마다 감소하는 인쇄할 총 페이지 수를 나타내는 정수를 포함하는 것이 도움이 됩니다.

참고

PrintDialog 구성 요소를 양식에 추가하여 사용자에게 깨끗하고 효율적인 UI(사용자 인터페이스)를 제공할 수 있습니다. PrintDialog 구성 요소의 Document 속성을 설정하면 양식에서 작업 중인 인쇄 문서와 관련된 속성을 설정할 수 있습니다.

프로그래밍 방식으로 인쇄 작업을 만드는 방법을 포함하여 Windows Forms 인쇄 작업의 세부 사항에 대한 자세한 내용은 PrintPageEventArgs를 참조하세요.

인쇄 작업 완료 방법

인쇄와 관련된 워드 프로세서 및 기타 애플리케이션은 인쇄 작업이 완료되었다는 메시지를 사용자에게 표시하는 옵션을 제공하는 경우가 자주 있습니다. PrintDocument 구성 요소의 EndPrint 이벤트를 처리하여 Windows Forms에 이 기능을 제공할 수 있습니다.

다음 절차를 수행하려면 PrintDocument 구성 요소가 있는 Windows 기반 애플리케이션을 만들어야 합니다. 아래에 제공된 절차는 Windows 기반 애플리케이션에서 인쇄를 사용하도록 설정하는 표준 방법입니다. PrintDocument 구성 요소를 사용하여 Windows Forms에서 인쇄하는 방법에 대한 자세한 내용은 인쇄 작업을 만드는 방법을 참조하세요.

  1. PrintDocument 구성 요소의 DocumentName 속성을 설정합니다.

    PrintDocument1.DocumentName = "SamplePrintApp"
    
    printDocument1.DocumentName = "SamplePrintApp";
    
  2. EndPrint 이벤트를 처리할 코드를 작성합니다.

    다음 코드 예제에서는 문서 인쇄가 완료되었음을 나타내는 메시지 상자가 표시됩니다.

    Private Sub PrintDocument1_EndPrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.EndPrint
        MessageBox.Show(PrintDocument1.DocumentName + " has finished printing.")
    End Sub
    
    private void PrintDocument1_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e) =>
        MessageBox.Show(printDocument1.DocumentName + " has finished printing.");