323
Chương 8: Đồ họa, đa phương tiện, và in ấn
}
private void Doc_PrintPage(object sender, PrintPageEventArgs e) {
// Định nghĩa font.
Font font = new Font("Tahoma", 30);
// Xác định vị trí trên trang.
// Trong trường hợp này, chúng ta đọc các thiết lập lề
// (mặc dù không có gì ngăn chúng ta vượt qua biên lề).
float x = e.MarginBounds.Left;
float y = e.MarginBounds.Top;
// Xác định chiều cao của một dòng (dựa trên font được sử dụng).
float lineHeight = font.GetHeight(e.Graphics);
// In năm dòng text.
for (int i=0; i < 5; i++) {
// Vẽ text với bút vẽ đen, sử dụng font và
// tọa độ mà chúng ta đã xác định.
e.Graphics.DrawString("Thập Diện Mai Phục " + i.ToString(),
font, Brushes.Black, x, y);
// Dịch xuống một dòng.
y += lineHeight;
}
y += lineHeight;
// Vẽ hình.
e.Graphics.DrawImage(Image.FromFile(Application.StartupPath +
"\\test.bmp"), x, y);
}
}
Ví dụ này có một hạn chế là nó chỉ in một trang đơn. Để in các văn bản phức tạp và nhiều
trang hơn, bạn cần phải tạo một lớp chuyên biệt để đóng gói các thông tin về văn bản, trang
hiện hành... Kỹ thuật này sẽ được trình bày trong mục 8.14.