Imports System.Drawing.Printing다음 멤버변수들을 선언합니다.
Public Class Form1 "---font variables--- Private f_title As Font Private f_body As Font "---page counter--- Private pagecounter As Integer "---PrintDocument variable--- Dim printDoc As PrintDocument()폼이 로드될 때, PrintDocument의 인스턴스를 하나 생성하고 앞에서 설명한 세 개의 메인 이벤트핸들러들을 연결합니다.
Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load "---create an instance of the PrintDocument class--- printDoc = New PrintDocument "---set the document name--- printDoc.DocumentName = "Printing from Windows Forms" "---wire up the event handlers--- AddHandler printDoc.BeginPrint, _ New PrintEventHandler(AddressOf Me._beginPrint) AddHandler printDoc.PrintPage, _ New PrintPageEventHandler(AddressOf Me._printPage) AddHandler printDoc.EndPrint, _ New PrintEventHandler(AddressOf Me._endPrint) End SubBeginPrint 이벤트핸들러에서 페이지카운터와 인쇄 시 사용될 텍스트 폰트들을 초기화합니다.
Private Sub _beginPrint( _ ByVal sender As Object, _ ByVal e As PrintEventArgs) "---initialize the page counter--- pagecounter = 1 "---initialize the fonts--- f_title = New Font("Arial", 16, FontStyle.Bold) f_body = New Font("Times New Roman", 10) End SubEndPrint 이벤트핸들러에서는 사용된 폰트 변수들 참조를 해제합니다.
Private Sub _endPrint( _ ByVal sender As Object, _ ByVal e As PrintEventArgs) "---de-reference the fonts--- f_title = Nothing f_body = Nothing End Sub끝으로, PrintPage 이벤트 핸들러에 프린터에 출력을 보내는 대부분의 작업들이 놓이게 됩니다. 기본적으로 인쇄되는 출력물을 나타내기 위해 PrintPageEventArgs 클래스에 있는 Graphics 객체를 사용합니다. 예를 들어, 사각형을 그리려면 e.Graphics.DrawRectangle() 메소드를 쓰고(e는 PrintPageEventArgs 클래스의 인스턴스입니다) 문자열을 출력하려면 e.Graphics.DrawString()메소드를 사용하면 됩니다.
Private Sub _printPage( _ ByVal sender As Object, _ ByVal e As PrintPageEventArgs) Dim g As Graphics = e.Graphics "---draws the title--- g.DrawString("2D Barcode for Learn2Develop.net", _ f_title, Brushes.Black, _ 20, 30) "---draws a border--- Dim border As Rectangle = _ New Rectangle(10, 10, _ 500, 240) g.DrawRectangle(Pens.Black, border) "---draws the barcode--- If PictureBox1.Image IsNot Nothing Then g.DrawImage(PictureBox1.Image, 20, 60, _ PictureBox1.Size.Width, _ PictureBox1.Size.Height) End If "---draws the page count--- g.DrawString("Page " & pagecounter, _ f_body, Brushes.Black, _ 20, 220) "---increments the page counter--- pagecounter += 1 End Sub사용자가 인쇄 버튼을 클릭했을 때, Print() 메소드를 사용하면 바로 출력이 기본 프린터로 전달됩니다.
Private Sub btnPrint_Click( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnPrint.Click "---print straight to printer--- printDoc.Print() End Sub시작 | 설정 | 프린터 및 팩스 에서 기본 프린터를 선택하여 인쇄되는 문서 이름을 확인할 수 있습니다. (그림 3)
이전 글 : .NET의 암호화 API 사용하기(2)
다음 글 : .NET 애플리케이션에서의 인쇄 기능 관리(2)
최신 콘텐츠