CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 325

325

Chương 8: Đồ họa, đa phương tiện, và in ấn

private int pageNumber;

private int offset;

public string[] Text {

get {return text;}

set {text = value;}

}

public int PageNumber {

get {return pageNumber;}

set {pageNumber = value;}

}

public int Offset {

get {return offset;}

set {offset = value;}

}

public TextDocument(string[] text) {

this.Text = text;

}

}

Tùy thuộc vào kiểu tài liệu muốn in, bạn có thể chỉnh sửa lớp này. Ví dụ, bạn có thể lưu trữ
một mảng gồm các dữ liệu hình, một vài nội dung sẽ được sử dụng làm header hoặc footer
trên mỗi trang, thông tin về font, hoặc tên của file mà bạn muốn đọc thông tin từ nó. Gói các
thông tin này vào một lớp đơn sẽ khiến cho việc in nhiều văn bản cùng một lúc dễ dàng hơn.
Phần mã khởi đầu cũng giống như mục 8.13, chỉ khác là bây giờ tạo đối tượng

TextDocument

(thay vì tạo đối tượng

PrintDocument

). Phương thức thụ lý sự kiện

PrintPage

giữ vết của dòng

hiện hành và kiểm tra có còn chỗ trống trên trang hay không trước khi thực hiện in dòng kế
tiếp. Nếu cần trang mới, thuộc tính

HasMorePages

được thiết lập là

true

và sự kiện

PrintPage

phát sinh lần nữa cho trang kế tiếp. Nếu không, thao tác in xem như hoàn tất.
Phần mã đầy đủ cho form được trình bày dưới đây:

using System;

using System.Windows.Forms;

using System.Drawing;

using System.Drawing.Printing;

public class MultiPagePrint : System.Windows.Forms.Form {

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.