Sử dụng mã Barcode và QRCode trong C#

Việc tích hợp mã Barcode và QRCode trong c# rất hữu ích cho các phần mềm ứng dụng trong thực tế. Đặc biệt là các phần mềm mua bán hàng hàng hóa và các phần mềm quản lý khác. Bài viết này sẽ hướng dẫn cụ thể cách tích hợp cả 2 dạng mã này.

Mã Barcode là gì?

Mã Barcode được dùng để mã hóa chuỗi dữ liệu thường là mã số. Barcode ứng dụng rất phổ biến trong thực tế với ưu điểm là quét với tốc độ cao. Thông thường, tia hồng ngoại được dùng chủ yếu để quét mã này. Ví dụ trong thanh toán hóa đơn ở siêu thị. Ngoài ra, có thể quét ở dạng hình ảnh. Tuy nhiên, khi dùng phần mềm để quét mã barcode dưới dạng hình ảnh thì tốc độ sẽ chậm hơn.

Mã QRCode có ưu điểm gì?

Mã QRCode ra đời sau mã Barcode nên có nhiều ưu điểm vượt trội. Đặc biệt là khả năng mã hóa được nhiều ký tự hơn Barcode. QRCode có thể mã hóa dữ liệu chuỗi unicode có dấu tiếng Việt trong khi mã barcode chỉ mã hóa được dữ liệu số hoặc chuỗi không dấu. Ngoài ra, QRCode còn cho khả năng sửa lỗi cao. Nghĩa là có thể đọc một mã QRCode bị hư hỏng một phần. Tuy nhiên, hạn chế của QRCode là không thể quét được bằng tia hồng ngoại mà chỉ có thể quét được ở dạng hình ảnh. Do đó, tốc độ đọc mã này sẽ chậm hơn barcode. Đây là lý do tại sao hiện nay mã Barcode vẫn còn sử dụng rộng rãi trong việc mã hóa sản phẩm và thanh toán hóa đơn mua bán hàng hóa.

Thư viện sử dụng:

Trong lập trình C#, để sử dụng các dạng mã này cần phải sử dụng thư viện tương ứng. Cụ thể đối với mã Barcode thì sử dụng thư viện BarcodeLib (download). Mã QRCode thì sử dụng thư viện QRCoder (download).

Cài đặt Barcode và QRCode:

Để sử dụng mã barcode và QRCode trong C#, thực hiện như sau:

Khởi động Visual studio > Tạo một project Windows Form mới. Thêm các thư viện vừa download ở trên (BarcodeLip và QRCoder) và khai báo using như sau:

Trên form, tạo các control và đặt tên như bên dưới:

Viết code như sau:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BarcodeLib;
using QRCoder;

namespace SuDungBarcode
{
    public partial class Form1 : Form
    {
        BarcodeLib.Barcode code128;
        public Form1()
        {
            InitializeComponent();
            code128 = new Barcode();
        }

        private void btnHienThi_Click(object sender, EventArgs e)
        {
            Image barcode = code128.Encode(BarcodeLib.TYPE.CODE128, txtDataBarcode.Text);
            pictureBox_Barcode.Image = barcode; 
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCode qrCode = new QRCode(qrGenerator.CreateQrCode(txtDataQRCode.Text, QRCodeGenerator.ECCLevel.Q));
            //QRCodeGenerator.ECCLevel.Q là mức chịu lỗi 25%; .L là 7%; .M là 15% và .H là trên 25%
            pictureBox_QRCode.Image = qrCode.GetGraphic(2, Color.Black, Color.White, false);
            qrGenerator.Dispose();
            qrCode.Dispose();
        }
    }
}

Kết quả sau khi thực hiện xong

Related posts

Leave a Comment