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

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;

}

}

}