VB.NET 2008/VB - 인쇄

인쇄하는 방법의 개요와 PrintDocument를 사용한 인쇄

본클라쓰 2012. 5. 31. 08:50

 

인쇄 개요

 

인쇄를 하는 일반적인 방법은 다음 두 가지 방법이 있습니다.

 

1) 문서 양식 또는 보고서와 유사하게 서식이 지정된 폼을 만든 후 폼의 이미지를 인쇄하는 방법

2) 모든 내용을 그래픽 메서드를 사용하여 그리는 방법

 

 

첫 번째 방식은 ReportView를 사용하는 방법이나, PrintForm를 사용하는 방법입니다. 두 번째 방식은 PrintDocument를 사용하는 방법입니다. 일반적인 인쇄 작업은 PrintDocument 구성 요소와 PrintPreviewDialog 컨트롤, PrintDialog 구성 요소 및 PageSetupDialog 구성 요소를 통해 인쇄 작업을 수행하는 것입니다.

 

 

 

 

PrintDocument 구성 요소를 사용한 인쇄

 

일반적으로 PrintDocument 구성 요소의 새 인스턴스를 만들고, PrintSettings 및 PageSettings 클래스를 사용하여 인쇄할 내용을 설명하는 속성을 설정하며, Print 메소드를 호출하여 실제 문서를 인쇄합니다.

 

윈도우 폼에서 인쇄의 기초가 되는 것은 PrintDocument 구성 요소입니다. 더 자세히 말하면 PrintPage 이벤트입니다. PrintPage 이벤트를 처리하는 코드를 작성하여 인쇄할 내용과 인쇄 방법을 지정할 수 있습니다. 이 때 인쇄를 그리기 위해 Graphics 개체를 사용합니다. Graphics 개체는 화면 또는 프린터와 같은 장치에 개체를 그릴 수 있는 방법을 제공합니다. 일반적인 인쇄 작업 순서는 다음과 같습니다.

 

1) 인쇄 작업을 만들려면 폼에 PrintDocument 구성 요소를 추가한다.

2) 그 후 PrintPage 이벤트를 처리하는 코드를 작성한다. 이 때 자신만의 인쇄 논리를 코드로 작성해야 한다. 또한 인쇄할 내용을 지

   정한다.

 

 

PrintPage 이벤트 처리기에 빨간 사각형 샘플을 그리는 방법)

 

Private Sub PrintDocument1_PrintPage(sender As Object, e As System.Drawing.Printing.PrintPageEventArgs) _

Handles PrintDocument1.PrintPage

 

    e.Graphics.FillRectangle(Brushes.Red, New Rectangle(500, 500, 500, 500))

End Sub

 

 

 

 

 

인쇄 옵션 설정

 

디자인 타임에 인쇄와 관련된 옵션을 설정할 수 있지만 사용자가 선택한 내용으로 인해 런타임에 이러한 옵션을 변경하는 경우가 있습니다. PrintDialog 및 PrintDocument 구성 요소를 사용하여 문서를 인쇄하기 위한 사용자 입력을 캡처할 수 있습니다. 프로그래밍 방식으로 인쇄 옵션을 변경하려면 PrintDialog 의 Document 속성을 폼에 추가한 PrintDocument로 설정합니다.

 

 

PrintDialog.Document = PrintDocument1

PrintDialog.ShowDialog()

 

 

대화 상자에서 사용자가 선택한 인쇄 옵션이 PrintDocument 구성 요소의 PrinterSettings 속성에 복사됩니다. PrintDialog 는 프린터 선택 및 인쇄 범위, 매수 등을 지정하는 다이얼로그 창을 출력합니다. 또한, PrintDialog 구성 요소를 사용하여 현재 설치된 프린터 중에서 사용자가 선택하도록 할 수 있습니다.

 

 

 

 

인쇄 미리 보기 사용

 

인쇄 서비스 외에 인쇄 미리 보기도 제공하는 것이 일반적인 인쇄 시나리오입니다. 응용 프로그램에 인쇄 미리 보기 서비스를 추가하는 가장 쉬운 방법은 PrintPreviewDialog 를 사용하는 것입니다.

 

 

Dim ppv As New PrintPreviewDialog

ppv.Document = pd

ppv.ShowDialog()

 

 

 

 

인쇄 작업의 완료

 

인쇄와 관련된 워드 프로세스 및 기타 응용 프로그램에서는 종종 인쇄 작업이 완료되었다는 메시지를 표시하는 옵션을 제공합니다. PrintDocument 구성 요소의 EndPrint 이벤트를 처리하여 이 기능을 제공할 수 있습니다.

 

인쇄 작업을 완료하려면 PrintDocument 구성 요소의 DocumentName 속성을 설정합니다.

 

PrintDocument1.DocumentName = "MyTextFile"

 

 

EndPrint 이벤트 처리기를 작성합니다.

 

Private Sub PrintDocument1_EndPrint(sender As Object, e As System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.EndPrint

 

    MsgBox(PrintDocument1.DocumentName & " has finished printing.")

End Sub