STDIO
Tìm kiếm gần đây
    • Nội dung
    • QR Code
    • 0
    • 0
    • Sao chép

    Làm Việc với Máy In trong C#

    Hướng dẫn cơ bản sử dụng C# ra lệnh in thông qua Driver của máy in.
    06/07/2020
    07/07/2020
    3 phút đọc
    Làm Việc với Máy In trong C#

    Máy in hoạt động bằng cách chạy ứng dụng trực tiếp trong nó, không yêu cầu có một máy tính riêng để kiểm soát quá trình in ấn. Mở rộng hơn, có thể sử dụng các thiết bị khác để tương tác, điều khiển máy in và bài viết này hướng đến việc sử dụng C# .NET để giao tiếp với máy in bằng cách thức đơn giản.

    Driver là gì?

    Driver là phần mềm tất yếu để các thiết bị xử lý các tín hiệu gửi/nhận được. Mỗi dữ liệu có cấu trúc và nhiệm vụ khác nhau, làm sao để máy tính có thể nhận biết, xử lý phù hợp? Ví dụ máy tính nhận được tín hiệu từ chuột và có thể xử lý tín hiệu đó, di chuyển con trỏ chuột đến vị trí phù hợp đó là công việc của driver. Thông thường driver sẽ được phát hành kèm với thiết bị mà nhà sản xuất chế tạo.

    Sử dụng C# thông qua driver để điều khiển máy in

    Có 2 cách để điều khiển máy in.

    1. Phần mềm (C#) tạo bản in, sử dụng driver để gửi thông tin đến máy in.
    2. Phần mềm (C#) tạo bản in và đóng vai trò driver gửi trực tiếp đến máy in.
      • Thông qua cáp kết nối.
      • Thông qua mạng (nếu máy in có hỗ trợ): Ethernet, Wifi…

    Trong bài viết này sẽ sử dụng cách cơ bản nhất là:

    • Phần cứng:
      • Máy tính kết nối với máy in thông qua cáp USB (thông dụng).
      • Cài đặt driver máy in.
    • Phần mềm:
      • Tạo bản in.
      • Gửi bản in thông qua driver.

    Code đầy đủ

    using System;
    using System.Windows.Forms;
    using System.Drawing.Printing;
    using System.Drawing;
    
    namespace HelloPrinter
    {
        public partial class MainForm : Form
        {
            private PrintDialog printDialog;
            private PrintDocument printDocument;
    
            public MainForm()
            {
                InitializeComponent();
    
                this.printDialog = new PrintDialog();
                this.printDocument = new PrintDocument();
    
                this.printDocument.PrintPage += new PrintPageEventHandler(this.printDocument_PrintPage);
            }
    
            private void printDocument_PrintPage(object sender, PrintPageEventArgs e)
            {
                e.Graphics.DrawString("Hello Printer", new Font("Arial", 10), Brushes.Black, new Point(10, 10));
                e.Graphics.DrawImage(Image.FromFile("./logo.png"), new Point(50, 50));
            }
    
            private void buttonPrint_Click(object sender, EventArgs e)
            {
                this.printDialog.Document = this.printDocument;
    
                if (printDialog.ShowDialog() == DialogResult.OK)
                {
                    printDocument.Print();
                }
            }
        }
    }

    Giải thích

    using System.Drawing.Printing;
    using System.Drawing;

    Trong đó using System.Drawing.Printing giúp tạo bản in (PrintDocument) và quản lý các driver hay cấu hình in (PrintDialog). using System.Drawing hỗ trợ thêm các thao tác tạo bản in như vẽ hình, viết chữ, …

    private PrintDialog printDialog;
    private PrintDocument printDocument;

    2 đối tượng với tính năng như đề cập ở trên.

    this.printDialog = new PrintDialog();
    this.printDocument = new PrintDocument();
    this.printDocument.PrintPage += new PrintPageEventHandler(this.printDocument_PrintPage);

    Khởi tạo sẵn 2 đối tượng cần thiết và đăng ký hàm xây dựng bản in khi có yêu cầu in.

    private void printDocument_PrintPage(object sender, PrintPageEventArgs e)
    {
    	e.Graphics.DrawString("Hello Printer", new Font("Arial", 10), Brushes.Black, new Point(10, 10));
    	e.Graphics.DrawImage(Image.FromFile("./logo.png"), new Point(50, 50));
    }

    Xây dựng bản in bằng cách tự vẽ ra các hình ảnh, chữ viết, phương pháp tạo bản in này sẽ rất phức tạp khi muốn xây dựng bản in với nhiều giao diện đồ họa bắt mắt, do đó việc xây dựng bản in có thể tiếp cận bằng các phương pháp khác (đọc thêm bài Xây dựng bản in bằng…).

    private void buttonPrint_Click(object sender, EventArgs e)
    {
        this.printDialog.Document = this.printDocument;
        if (printDialog.ShowDialog() == DialogResult.OK)
        {
            printDocument.Print();
        }
    }

    Yêu cầu tiến hành in, mở hộp thoại quản lý in và cấu hình in.

    Nếu bạn không có kết nối máy in, bạn có thể thử chọn chế độ in ra PDF để xem trước kết quả. Bài viết trên cơ bản về việc sử dụng máy in với C#, trong dự án cụ thể bạn cần nhiều trường hợp hơn có thể tham khảo các bài viết nâng cao:

    • Khổ Giấy A4 và Khổ Giấy Letter.
    • Tạo bản in với XML.
    • Tùy biến giao diện cấu hình máy in.
    • Lập trình mạng cơ bản.
    • Gửi bản in qua máy in mạng.
    • Các vấn đề về căn lề.

    Download project HelloPrinter.

    0
    C# for Automation

    C# for Automation

    STDIO Training - Đào tạo C# Foundation & Advanced.

    Khi bạn nhấn vào liên kết sản phẩm do STDIO đề xuất và mua hàng, STDIO có thể nhận được hoa hồng. Điều này hỗ trợ STDIO tạo thêm nhiều nội dung hữu ích.. Tìm hiểu thêm.

    Đề xuất

    Nhập Xuất Cơ Bản trong C/C++
    Bài viết là tiền đề giúp cho người đọc làm quen các thao tác cơ bản với ...
    18/03/2016
    Thao Tác Với Chuỗi Trong C/C++
    Kiến thức cơ bản trong thao tác xử lý chuỗi trong C++.
    28/07/2015

    Khám phá

    9 Tính Năng Quan Trọng Trong C++11
    C++11 là một phiên bản cải tiến và nâng cấp từ C++98 (hay các bạn vẫn ...
    13/08/2015
    OpenCV với Python trong Ứng Dụng Đếm Số Lượng
    Bài viết ứng dụng OpenCV để nhận dạng và đếm số lượng vật thể giúp giảm ...
    Vì Sao Sinh Viên Ngành Khoa Học Máy Tính Học C++ Như 1 Ngôn Ngữ Chính?
    Vì sao sinh viên ngành Khoa Học Máy Tính nên xem và học C++ như một ngôn ...
    Tín Hiệu Số Và Tương Tự - Analog/Digital
    Trong ngành điện tử nói chung và trong lập trình vi điểu khiển nói ...
    Đọc Ghi Tất Cả Các Định Dạng Ảnh với FreeImage trong C++
    Hướng dẫn sử dụng FreeImage để đọc, ghi, xử lý ảnh trong C++.
    28/09/2014
    Bản Chất Của Biến Trong C/C++
    Tìm hiểu về bản chất của biến trong C++.
    16/01/2015
    Nhập Xuất Cơ Bản trong C
    Tìm hiểu về thao tác nhập xuất cơ bản trong C.
    28/07/2015
    C++ - Vị Thần Của Quá Khứ, Hiện Tại Và Vị Lai
    C++ Tượng đài trong ngành Công nghệ thông tin.
    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020