인쇄를 하는 일반적인 방법은 다음 두 가지 방법이 있습니다.
1) 문서 양식 또는 보고서와 유사하게 서식이 지정된 폼을 만든 후 폼의 이미지를 인쇄하는 방법
2) 모든 내용을 그래픽 메서드를 사용하여 그리는 방법
첫 번째 방식은 ReportView를 사용하는 방법이나, PrintForm를 사용하는 방법입니다. 두 번째 방식은 PrintDocument를 사용하는 방법입니다. 일반적인 인쇄 작업은 PrintDocument 구성 요소와 PrintPreviewDialog 컨트롤, PrintDialog 구성 요소 및 PageSetupDialog 구성 요소를 통해 인쇄 작업을 수행하는 것입니다.
일반적으로 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
'VB.NET 2008 > VB - 인쇄' 카테고리의 다른 글
바코드 인쇄 - 바코드를 인쇄하는 소스 코드(Code 39) (1) | 2012.04.05 |
---|---|
바코드 인쇄 - 바코드(Barcode) 개요 (0) | 2012.04.05 |
인쇄 - PrintForm을 사용한 인쇄 (0) | 2012.01.03 |
인쇄 - 특정 클라이언트 영역 인쇄 방법 (0) | 2012.01.03 |
인쇄 - PrintDocument 를 사용한 인쇄 지원 (0) | 2012.01.03 |