327
Chương 8: Đồ họa, đa phương tiện, và in ấn
// Tạo các biến lưu giữ vị trí trên trang.
float x = e.MarginBounds.Left;
float y = e.MarginBounds.Top;
// Tăng biến đếm cho trang (cho biết số trang đã được in).
doc.PageNumber += 1;
// In tất cả thông tin vừa khít trên trang.
// Vòng lặp này kết thúc khi dòng kế tiếp vượt quá biên lề,
// hoặc không còn dòng nào để in.
while ((y + lineHeight) < e.MarginBounds.Bottom &&
doc.Offset <= doc.Text.GetUpperBound(0)) {
e.Graphics.DrawString(doc.Text[doc.Offset], font,
Brushes.Black, x, y);
// Dịch đến dòng dữ liệu kế tiếp.
doc.Offset += 1;
// Dịch xuống một dòng trên trang.
y += lineHeight;
}
if (doc.Offset < doc.Text.GetUpperBound(0)) {
// Vẫn còn ít nhất một trang nữa.
// Cho biết sự kiện này sẽ phát sinh lần nữa.
e.HasMorePages = true;
}else {
// Thao tác in đã hoàn tất.
doc.Offset = 0;
}
}
}