Sử dụng lớp Printdocument

Một phần của tài liệu giáo trình làm quen với visual basic net (Trang 123 - 126)

Printdocument được sử dụng bằng cách chọn nó trên toolbox và thêm vào dự án như các điều khiển khác. Lớp Printdocument nằm trong thư viện System.Drawing.Printing, cần imports thư viện ở đầu chương trình khi muốn sử dụng.

Ví dụ MyPrintsGraphics sau đây sẽ hướng dẫn cách sử dụng đối tượng này.

Tìm hiểu chương trình:

Chương trình bao gồm một textbox cho phép nhập đường dẫn của file graphic cần in và một nút nhấn cho phép in ra. Vì không nối máy in nên ta sẽ lưu ra một file định dạng *.mdi.

Thiết kế giao diện:

Tạo mới một Solution và thêm một dự án cùng tên là MyPrintsGraphics, thiết kế giao diện như hình dưới đây. Trong đó các đối tượng có thuộc tính như sau:

- TextBox1: thuộc tính text là đường dẫn đến file graphics,ở đây là file NFS2SER.ICO đã có trong thư mục chứa dự án.

124 Thêm vào điều khiển PrintDocument1 từ ToolBox.

Viết mã:

Tạo mới một module có tên ModulePrinting.vb chứa hàm PrintGraphic là hàm phục vụ in ấn sẽ được gọi trong thủ tục Button1_Click. Nội dung của module như sau:

Imports System.Drawing.Printing Module ModulePrinting

Public Sub PrintGraphic(ByVal sender As Object, _ ByVal ev As PrintPageEventArgs) 'Vẽ ảnh đồ họa bằng DrawImage ev.Graphics.DrawImage _ (Image.FromFile(Form1.TextBox1.Text), _ ev.Graphics.VisibleClipBounds) 'Xác định không còn trang khác ev.HasMorePages = False End Sub End Module

Thủ tục này là hạt nhân của tác vụ in ấn từng trang khi sự kiện PrintPage của điều khiển PrintDocument1 xảy ra sau lời gọi PrintDocument1.Print(). Trong đó, ev

dùng để tham chiếu đến các thông số mà PrintDocument truyền vào. Ta dùng ev để lấy về đối tượng Graphics dùng vẽ ra máy in đồng thời sử dụng phương thức DrawImage để vẽ ảnh, thuộc tính HasMorePage đặt là false để chỉ in trong một trang.

125 Imports System.Drawing.Printing

Tiếp theo ta tạo thủ tục Button1_Click như sau:

Private Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button1.Click

Try AddHandler PrintDocument1.PrintPage, _ AddressOf ModulePrinting.PrintGraphic PrintDocument1.Print() Catch ex As Exception MessageBox.Show _

("Sorry-there is problem printing",

ex.ToString)

End Try

End Sub

Phát biểu AddHandler yêu cầu thủ tục xử lý PrintGraphic trong Module sẽ được triệu gọi khi sự kiện PrintPage của điều khiển PrintDocument xảy ra. Hàm AddressOf dùng để chỉ định địa chỉ của thủ tục PrintGraphic trong ModulePrint.vb. Đây là kỹ thuật chuyển giao trong các ngôn ngữ của nền .NET, bạn chuyển địa chỉ của hàm cho đối tượng và đối tượng sẽ gọi hàm.

Chạy chương trình:

Có thể nhập mới một đường dẫn đến đối tượng in hay click vào nút nhấn để in luôn. Kết quả:

126 Chọn nơi lưu file *.mdi. và ấn nút save để lưu. Ta cũng có thể dừng tác vụ in bằng cách ấn nút Cacel.

Một phần của tài liệu giáo trình làm quen với visual basic net (Trang 123 - 126)

Tải bản đầy đủ (PDF)

(189 trang)