324
Chương 8: Đồ họa, đa phương tiện, và in ấn
Hình 8-10 Văn bản đã được in (sử dụng máy in Adobe PDF)
14.
14.
In văn b n có nhi u trang
ả
ề
In văn b n có nhi u trang
ả
ề
Bạn cần in các văn bản phức tạp gồm nhiều trang và in nhiều văn bản khác nhau
cùng một lúc.
Đặt thông tin muốn in vào một lớp tùy biến dẫn xuất từ
PrintDocument
, và thiết
lập thuộc tính
PrintPageEventArgs.HasMorePages
là
true
trong khi vẫn còn trang
để in.
Sự kiện
PrintDocument.PrintPage
cho phép bạn chỉ in một trang đơn. Nếu muốn in nhiều
trang hơn, bạn cần thiết lập thuộc tính
PrintPageEventArgs.HasMorePages
là
true
trong
phương thức thụ lý sự kiện
PrintPage
. Trong khi
HasMorePages
là
true
, lớp
PrintDocument
vẫn tiếp tục phát sinh các sự kiện
PrintPage
(một sự kiện cho một trang). Tuy nhiên, bạn cần
biết là đang in đến trang thứ mấy, dữ liệu gì sẽ được in trên mỗi trang... Để thực hiện điều
này, cách hay nhất là tạo một lớp tùy biến.
Lớp
TextDocument
dưới đây thừa kế từ
PrintDocument
và thêm ba thuộc tính:
Text
lưu trữ một
mảng các dòng text,
PageNumber
cho biết trang vừa được in, và
Offset
cho biết dòng vừa được
in (trong mảng
Text
).
public class TextDocument : PrintDocument {
private string[] text;