PrintDocument: in dòng chữ ra giấy ở vị trí tùy ý.

PrintDocument là một class cơ bản của .NET framework, nằm trong thư viện System.Drawing.dll. Tên đầy đủ của nó là System.Drawing.Printing.PrintDocument.

Bài viết này sẽ hướng dẫn bạn sử dụng PrintDocument để in một dòng chữ ra giấy (A4, A5) ở một tọa độ do bạn xác định.

Bạn có thể sử dụng kỹ thuật này để tạo các phần mềm in (thêm) nội dung ra phôi (chứng chỉ, phiếu thu-chi, …).

Bước 1: Bạn tạo mới một project “Windows Forms Application”.

Bước 2: Khai báo biến printDoc  (PrintDocument) trong Form (mặc định là Form1).

VB.Net:
Public Class Form1
    Private WithEvents printDoc As Printing.PrintDocument 'Khai báo biến
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        printDoc = New Printing.PrintDocument 'Khởi tạo biến (New)
        '...
    End Sub

'...
End Class
C#:
public partial class Form1 : Form
    {
        private System.Drawing.Printing.PrintDocument printDoc; //Khai báo biến
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            printDoc = new System.Drawing.Printing.PrintDocument(); //Khởi tạo biến (new)
            printDoc.PrintPage += this.printDoc_PrintPage; //Thêm Event
            //...
        }
//...
}

Bước 3: Bạn thêm một Button tên là cmdPrint và Event của nó có code:

VB.NET:
Private Sub cmdPrint_Click(sender As Object, e As EventArgs) Handles cmdPrint.Click
   printDoc.Print()
End Sub
C#:
private void btnPrint_Click(object sender, EventArgs e)
{
   printDoc.Print();
}

Bước 4: Sau khi Method Print của printDoc được gọi, printDoc sẽ sinh ra Event PrintPage:

VB.NET:
Private Sub printDoc_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles printDoc.PrintPage
        Dim FO = New Font("Times New Roman", 12, FontStyle.Regular, GraphicsUnit.Point)
        e.Graphics.DrawString("Dòng chữ bạn muốn in ra", FO, Brushes.Black, 200, 150)
    End Sub
C#:
private void printDoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Font fo = new Font("Times New Roman", 12, FontStyle.Regular, GraphicsUnit.Point);
            e.Graphics.DrawString("Dòng chữ bạn muốn in ra", fo, Brushes.Black, 200,150);
        }

Ở code trên tọa độ in ra giấy là(x=200, y = 150, đơn vị là pixel). Bạn chú ý đoạn code “in” dòng chữ ra giấy là e.Graphics.DrawString, nó thuộc class System.Drawing.Graphics. Bạn có thể tìm hiểu thêm về các hàm vẽ khác như DrawImage (vẽ logo, icon, ảnh, …), DrawLine (vẽ đoạn thẳng) , DrawRectangle (vẽ hình chữ nhật, khung, border, …)…

Để xem code hoàn thiện, bạn nên tải code mẫu ở đầu bài viết này.

Author: autoDN

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *