Phát triển Web

Barcode Generator

Tạo mã vạch tuyến tính (CODE128, EAN-13, UPC, CODE39 và các loại khác) từ văn bản hoặc số.

A linear barcode encodes data as bars of varying width, read by a single laser beam in a scanner. Unlike a QR code, most formats are limited to digits or ASCII text, but in exchange they're readable by virtually any retail scanner.

How to use it

Common uses

Things to keep in mind

EAN-13 and UPC-A are official retail standards — selling a product in stores requires a real, registered GTIN, not an arbitrarily generated one.

No common linear barcode format supports non-Latin scripts or other Unicode characters directly — use a QR code for that kind of text.

Bài viết về công cụ này: Mã vạch: Code 128 khác gì với EAN-13

Câu hỏi thường gặp

Tại sao nó báo dữ liệu của tôi không phù hợp với định dạng đã chọn?

Mỗi định dạng mã vạch có ràng buộc riêng — ví dụ EAN-13 yêu cầu chính xác 12 hoặc 13 chữ số và CODE39 chỉ hỗ trợ một tập ký tự giới hạn — vì vậy dữ liệu phải khớp với quy tắc của định dạng đã chọn.

Tôi nên dùng định dạng nào cho văn bản tùy ý?

CODE128 hỗ trợ toàn bộ tập ký tự ASCII, bao gồm chữ cái, chữ số và ký hiệu, khiến nó trở thành lựa chọn linh hoạt nhất khi dữ liệu của bạn không hoàn toàn là số.

Tạo mã vạch có tải dữ liệu của tôi lên không?

Không, hình ảnh mã vạch được kết xuất hoàn toàn trong trình duyệt của bạn bằng thư viện jsbarcode — không có gì được gửi tới máy chủ.

UPC-A khác gì với EAN-13?

UPC-A là định dạng 12 chữ số được sử dụng theo truyền thống ở Bắc Mỹ, trong khi EAN-13 là tiêu chuẩn quốc tế 13 chữ số; UPC-A thực chất là tập con của EAN-13 (thêm số 0 vào đầu sẽ biến nó thành một EAN-13 hợp lệ), nên hầu hết máy quét nhận diện cả hai định dạng mà không có khác biệt.

Có thể mã hóa chữ không phải Latin hoặc các ký tự Unicode khác trong mã vạch không?

Hầu hết các định dạng mã vạch phổ biến, như EAN-13 hay UPC-A, chỉ hỗ trợ chữ số, còn Code 128 bị giới hạn trong tập ký tự ASCII — không định dạng nào trong số đó hỗ trợ trực tiếp chữ không phải Latin hay các ký tự Unicode khác, nên loại văn bản đó cần dùng mã QR.

Bài viết: Phát triển Web

HEX, RGB, HSL: vì sao có nhiều cách viết một màu đến vậy

Vì sao các nhà thiết kế thường chọn HSL thay vì HEX khi chọn sắc độ màu bằng tay.

Rút gọn CSS: điều gì thực sự bị loại bỏ khỏi tệp và vì sao

Vì sao CSS đã rút gọn hoạt động chính xác như cũ trong trình duyệt, dù trở nên khó đọc với con người.

Rút gọn JavaScript: sự khác biệt giữa rút gọn và làm rối mã

Vì sao mã đã rút gọn vẫn có thể đọc được nếu muốn, còn mã đã làm rối thì không.

Rút gọn HTML: vì sao khoảng trắng trong markup lại có ý nghĩa

Vì sao loại bỏ khoảng trắng bên trong <pre> hoặc một textarea có thể phá vỡ giao diện trang, khác với hầu hết mọi nơi khác.

Gradient CSS: linear khác gì với radial và conic

Vì sao conic-gradient phù hợp với biểu đồ tròn, còn radial-gradient tạo hiệu ứng vệt sáng.

Thuật toán Luhn: cách kiểm tra tính đúng đắn của số thẻ

Vì sao một số thẻ vượt qua kiểm tra Luhn không có nghĩa là thẻ đó thực sự tồn tại.

IBAN: cấu trúc của một số tài khoản ngân hàng quốc tế

Vì sao hai chữ cái đầu tiên của IBAN là mã quốc gia, không phải một phần của số tài khoản.

Mã QR: một liên kết vừa vặn trong ô vuông điểm ảnh như thế nào

Vì sao một mã QR có logo ở giữa vẫn quét được dù một phần hoa văn bị che.

Ảnh placeholder: vì sao ảnh giả lại quan trọng trong quá trình phát triển

Vì sao các nhà phát triển cố tình chèn hình chữ nhật xám thay vì ảnh thật khi một bố cục vẫn đang được xây dựng.