VB.NET 2008/VB - 인쇄

인쇄 - PrintForm을 사용한 인쇄

본클라쓰 2012. 1. 3. 13:18

 

PrintForm 구성 요소를 사용하면 런타임에 윈도우 폼 이미지를 인쇄할 수 있다.

 

윈도우 폼을 사용하는 일반적인 시나리오는 문서 양식 또는 보고서와 유사하게 서식이 지정된 폼을 만든 후 해당 폼의 이미지를 인쇄하는 것이다. PrintDocument 구성 요소를 사용하여 이 작업을 수행할 수도 있지만 그러려면 상당히 많은 코드를 작성해야 한다. PrintForm 구성 요소를 사용하면 PrintDocument 구성 요소를 사용하지 않고도 폼의 이미지를 프린터, 인쇄 미리 보기 창 또는 파일로 인쇄할 수 있다.

 

이 구성 요소를 폼에 끌어 오면 폼의 아래쪽 테두리 아래의 작은 영역을 지정하는 구성 요소 트레이에 나타난다. 구성 요소를 선택하면 이 구성 요소의 동작을 정의하는 속성을 속성 창에서 설정할 수 있다. 이 창에 표시되는 모든 속성은 코드에서 직접 설정할 수도 있다. 디자인 타임에 구성 요소를 추가할 필요 없이 코드를 작성할 때 PrintForm 구성 요소의 인스턴스를 만들 수도 있다.

 

폼을 인쇄하면 폼의 클라이언트 영역에 있는 모든 요소가 인쇄된다. 여기에는 모든 컨트롤 및 그래픽 메서드를 사용하여 폼에 그린 모든 텍스트나 그래픽이 포함된다. 그러나 폼의 제목 표시줄, 스크롤 막대 및 테두리는 기본적으로 인쇄되지 않는다. 또한 기본적으로 PrintForm 구성 요소는 폼에 보이는 부분만 이쇄한다. 예를 들어 런타임에 사용자가 폼의 크기를 조정한 경우 현재 화면에 보이는 컨트롤과 그래픽만 인쇄된다.

 

 

 

PrintForm의 주요 메서드 및 속성

 

1. Print 메서드

 

PrintForm 구성 요소의 주요 메서드는 폼 이미지를 프린터, 인쇄 미리 보기 창 또는 파일로 인쇄하는 Print 메서드이다. Print 메서드는 다음과 같은 두 가지 버전으로 사용할 수 있다.

 

 · 매개 변수를 사용하지 않은 기본 버전 : Print()

· 인쇄 동적을 지정하는 매개 변수를 사용하는 오버로드된 버전 : Print(PrintForm As From, PrintFormOption As PrintOption)

 

오버로드된 메서드의 PrintOption 매개 변수는 폼을 인쇄하는 데 사용되는 기본 구현, 폼의 제목 표시줄, 스크롤 막대, 테두리 등을 인쇄할지 여부 및 폼의 스크롤 가능한 부분을 인쇄할지 여부를 결정한다.

 

Print 메서드는 폼에 표시되는 모든 개체를 인쇄한다. 여기에는 Graphics 메서드를 사용하여 그린 모든 텍스트나 그래픽이 포함된다. 이 때 기본값은 폼의 클라이언트 영역만 인쇄된다. 인쇄되는 이미지에 제목 표시줄, 스크롤 막대 및 테두리를 포함하려면 PrintOption 매개 변수를 CompatibleModeFullWindow 또는 FullWindow로 설정해야 한다.

 

사용자가 런타임에 폼 크기를 조정한 경우에는 폼이 현재 화면에 표시되는 대로만 인쇄된다. 그러나 폼을 화면 가장자리로 이동하여 폼의 일부가 화면에 보이지 않는 경우에는 폼 전체가 보이는 것처럼 인쇄된다. 폼을 원래 디자인된 크기로 인쇄하려면 PrintOption 매개 변수를 Scrollable로 설정한다.

 

2. PrintAction 속성

 

PrintAction 속성은 출력을 프린터에 보낼지, 인쇄 미리 보기 창에 표시할지 또는 EPS(Encapsulated PostScript) 파일로 저장할지 결정한다. PrintAction 속성을 PrintToFile 로 설정하는 경우 PrintFileName 속성에 경로와 이름을 지정해야 한다.

 

3. PrintSettings 속성

 

PrintSettings 속성은 사용할 프린터 및 인쇄할 매수 같은 설정을 지정할 수 있는 기본 PrinterSettings 개체에 액세스할 수 있을 뿐만 아니라 색상이나 양면 인쇄 같은 프린터의 기능을 쿼리할 수도 있다. 이 속성은 속성 창에 나타나지 않으므로 코드에서만 설정할 수 있다.

 

4. Form 속성

 

Form 속성은 PrintForm 구성 요소를 프로그래밍 방식으로 호출할 경우 인쇄할 폼을 지정하는 데 사용된다. 디자인 타임에 구성 요소를 폼에 추가한 경우에는 해당 폼이 기본적으로 인쇄된다.

 

 

 

인쇄 미리 보기

 

인쇄 미리 보기를 원할 경우 폼에 PrintForm을 추가한 후 다음과 같이 코드를 작성한다.

 

Me.PrintForm1.PrintAction = Printing.PrintAction.PrintToPreview
Me.PrintForm1.Print()

 

 

 

스크롤 가능한 폼의 클라이너트 영역 전체를 인쇄하려면

 

폼에 PrintForm 구성 요소를 추가한 후 속성 창에서 PrintAction 속성을 PrintToPrinter로 설정한다. 적ㅈ러한 이벤트 처리기에 다음 코드를 추가한다.

 

PrintForm1.Print(Me, PowerPacks.Printing.PrintForm.PrintOption.Scrollable)

 

 

 

PrintForm 이벤트

 

· BeginPrint - Print 메서드가 호출된 문서의 첫 페이지가 인쇄되기 전에 발생한다.

· EndPrint - 문서의 마지막 페이지가 인쇄되면 발생한다.

· QueryPageSettings - 각 페이지가 인쇄되기 바로 전에 발생한다.