Trình tạo mã vạch miễn phí trực tuyến
Tạo mã vạch ở các định dạng phổ biến. Tùy chỉnh và tải xuống dưới dạng PNG hoặc SVG.
Lược sử ngắn về mã vạch
Mã vạch là công nghệ 77 năm tuổi với một khoảnh khắc phát minh duy nhất. Năm 1948, hiệu trưởng Drexel Institute of Technology ở Philadelphia tình cờ nghe Bernard Silver, một nghiên cứu sinh, trao đổi với chủ tịch một chuỗi cửa hàng thực phẩm địa phương về vấn đề đọc dữ liệu sản phẩm tự động tại quầy thanh toán. Hiệu trưởng từ chối yêu cầu này, nhưng Silver mang ý tưởng đến cho một giảng viên 27 tuổi mà ông quen biết, Norman Joseph Woodland, một cựu hướng đạo sinh thông thạo morse và mang sự bồn chồn đặc trưng của một kỹ sư. Woodland từ chức tại Drexel ngay mùa đông đó, chuyển đến căn hộ của ông nội ở Miami Beach, và vào một buổi chiều đầu năm 1949, khi ông lơ đãng kéo bốn ngón tay trên cát, lời giải hiện ra: nếu kéo các chấm và gạch của morse xuống dưới, ta được một chuỗi các dải đậm nhạt mà một chùm sáng có thể quét qua để tạo ra các xung có thể giải mã được. Bản phác đầu tiên trên cát của ông không phải các đường song song mà là các vòng tròn đồng tâm, một mẫu "bia bắn" có thể đọc được từ mọi hướng. Woodland và Silver nộp bằng sáng chế ngày 20 tháng 10 năm 1949 và được cấp ngày 7 tháng 10 năm 1952 dưới mã bằng sáng chế Hoa Kỳ 2.612.994, "Classifying Apparatus and Method", với thiết bị đọc đề xuất dựa trên bóng đèn sợi đốt 500 watt. Bằng không khả thi thương mại: laser và photodiode cần thiết để đọc nó ở mức giá tiêu dùng khi đó chưa tồn tại. Hai nhà phát minh bán bằng cho Philco với giá 15.000 đô la vào năm 1962. Silver qua đời một năm sau trong một vụ tai nạn ô tô, ở tuổi 38, trước khi bất kỳ mã vạch nào quét được một sản phẩm.
Đột phá đến hai thập niên sau, khi George Joseph Laurer tại phòng thí nghiệm IBM ở Research Triangle Park (North Carolina) đề xuất phương án hình chữ nhật (các thanh dọc thay vì các vòng tròn đồng tâm), trở thành Universal Product Code (UPC). Symbol Selection Committee thông qua thiết kế của IBM ngày 3 tháng 4 năm 1973. Lần quét UPC thương mại đầu tiên xảy ra ngày 26 tháng 6 năm 1974 tại Marsh Supermarket ở Troy, Ohio: gói 10 thanh kẹo cao su Wrigley's Juicy Fruit giá 67 cent, được thu ngân Sharon Buchanan trượt qua một máy quét do NCR chế tạo và được Clyde Dawson trao tay, một quản lý của National Cash Register Company - chính công ty đã sản xuất thiết bị này. Bao bì hiện được lưu giữ tại Smithsonian Museum of American History. Trong một thập niên, quét UPC phổ quát trong tạp hóa Mỹ, và năm 1976 consortium nhà phân phối châu Âu áp dụng EAN-13 (European Article Number, nay là GTIN-13 trong thuật ngữ GS1), cùng định dạng với một chữ số bổ sung cho tiền tố quốc gia, nay là chuẩn toàn cầu ngoài Bắc Mỹ. Cả hệ sinh thái mã vạch hiện đại (quầy siêu thị, nhãn vận chuyển, sách thư viện, vòng tay bệnh viện, thẻ hội nghị, theo dõi tài sản) đều hậu duệ từ bốn đường đó trên cát Miami Beach.
Hướng dẫn định dạng mã vạch
- UPC-A (Universal Product Code, 1973). 12 chữ số gồm một chữ số kiểm tra; mã vạch bán lẻ thống trị ở Hoa Kỳ và Canada. Mã hóa tiền tố nhà sản xuất (do GS1 cấp) và số sản phẩm. Định dạng mã vạch được quét nhiều nhất trên thế giới.
- EAN-13 · mã vạch tiêu chuẩn được sử dụng trong thương mại toàn cầu (trừ US/Canada). Yêu cầu chính xác 12 chữ số (chữ số thứ 13 là chữ số kiểm tra).
- EAN-8 · phiên bản nhỏ gọn cho các sản phẩm nhỏ. Yêu cầu chính xác 7 chữ số.
- Code 39 (Intermec, 1974). Chữ-số (A-Z chữ hoa, chữ số 0-9, cộng
- . $ / + % *và khoảng trắng). Mã vạch công nghiệp lịch sử, bằng lái xe, nhãn thiết bị quân đội, vòng tay bệnh viện. Mật độ dữ liệu thấp hơn Code 128 (khoảng 9 thanh rộng-hoặc-hẹp mỗi ký tự) và không có chữ số kiểm tra tích hợp. Tự kiểm tra theo thiết kế, mỗi ký tự bắt đầu và kết thúc bằng thanh, nên một lỗi đọc đơn lẻ có thể phát hiện về cấu trúc. ISO/IEC 16388. - Code 128 (Computer Identics, 1981). ASCII đầy đủ (128 ký tự, cộng bốn mã chức năng); định dạng độ dài biến đổi mật độ cao với chữ số kiểm tra bắt buộc. Ba mã con: A (ký tự điều khiển + chữ hoa + chữ số), B (chữ hoa + chữ thường + chữ số), C (cặp chữ số mã hóa thành một ký tự, "12" là một ký tự, một nửa độ rộng). Định dạng thống trị cho nhãn vận chuyển trên thế giới, nhãn UPS, FedEx, DHL và USPS Priority Mail đều là Code 128. ISO/IEC 15417.
- ITF-14 (Interleaved 2 of 5). Mã hóa chính xác 14 chữ số; chuẩn GS1 cho GTIN của thùng vận chuyển (thùng chứa sản phẩm bán lẻ). Số mật độ cao, đan xen thanh và khoảng cách của hai ký tự mỗi cặp, đạt khoảng 4 phần tử rộng-hoặc-hẹp mỗi chữ số. Luôn 14 chữ số vì đó là độ dài GTIN-14 chuẩn hóa bởi GS1. ISO/IEC 16390.
- Codabar (1972). Số cộng 6 chữ cái (A-D làm ký tự bắt đầu/kết thúc); dùng lịch sử bởi FedEx, ngân hàng máu, phòng lab ảnh và hệ thống mượn thư viện. Phần lớn lỗi thời nay, ứng dụng mới dùng Code 128 hoặc Code 39.
- Pharmacode · được sử dụng trong bao bì dược phẩm. Chỉ dạng số (3 đến 131.070).
Chữ số kiểm tra, toán học bắt lỗi đọc
Phần lớn mã vạch bán lẻ gồm chữ số kiểm tra cuối tính từ các chữ số trước. Phép tính bắt lỗi đọc một chữ số (lỗi quét phổ biến nhất) và phần lớn hoán vị các chữ số liền kề. UPC-A và EAN-13 dùng thuật toán modulo 10: bắt đầu từ phải, nhân mỗi chữ số xen kẽ với 1 và 3 (UPC-A) hoặc 3 và 1 (EAN-13), cộng tích, lấy kết quả modulo 10, và trừ khỏi 10, kết quả là chữ số kiểm tra (0 nếu modulo bằng 0). Cho mã UPC-A 03600029145, chữ số kiểm tra là 7, cho ra đầy đủ 036000291452 trên một lon Coca-Cola. Code 128 dùng tổng có trọng số modulo 103 phức tạp hơn gồm cả ký tự bắt đầu. Code 39 tự kiểm tra theo thiết kế (mẫu thanh của mỗi ký tự không nhập nhằng về cấu trúc) nhưng tùy chọn thêm chữ số kiểm tra modulo 43 cho ứng dụng độ tin cậy cao. Pharmacode không có chữ số kiểm tra, thay vào đó dựa vào dải giới hạn và ngữ cảnh dây chuyền sản xuất. Công cụ này tự động tính chữ số kiểm tra; bạn có thể nhập payload thô (và công cụ thêm chữ số kiểm tra), hoặc payload đầy đủ kèm kiểm tra (và công cụ xác thực).
Vùng tĩnh, các thanh cần khoảng trắng quanh
Mọi mã vạch 1D đòi một lượng không gian trắng tối thiểu ở các cạnh trái và phải, vùng tĩnh. Yêu cầu chuẩn là ít nhất 10× độ rộng thanh hẹp nhất (ký hiệu "X" trong đặc tả mã vạch) ở mỗi bên. Không có vùng tĩnh, máy quét không thể phát hiện đáng tin nơi mã vạch bắt đầu và kết thúc; mẫu bắt đầu và kết thúc của symbology được thiết kế để rõ ràng chỉ khi tương phản với khoảng trắng thực sự. Lỗi sản xuất phổ biến nhất là siết mã vạch sát cạnh có màu hay phần tử nhãn khác để tiết kiệm chỗ, phá vỡ vùng tĩnh. Đặc tả GS1 áp đặt độ rộng vùng tĩnh theo symbology và kích thước X; thất bại kiểm tra vùng tĩnh khi xác thực nghĩa là mã vạch sẽ không quét đáng tin tại cửa hàng. Công cụ này tự động phát ra vùng tĩnh phù hợp, đầu ra PNG và SVG bao gồm các lề bắt buộc.
JsBarcode, thư viện bên dưới
Công cụ này dùng JsBarcode (Johan Lindell, giấy phép MIT, ~5k sao GitHub), thư viện JavaScript mã nguồn mở mã vạch được dùng nhiều nhất. JsBarcode hỗ trợ CODE128, EAN (8/13), UPC, CODE39, ITF-14, MSI, Pharmacode và Codabar; render thành SVG, Canvas hoặc img HTML; và giao dưới dạng một bundle minify duy nhất 60 KB. Nó chạy hoàn toàn trong trình duyệt, không server, không upload, đó đúng là tính chất quyền riêng tư mà công cụ này phụ thuộc. Phiên bản cụ thể tải ở đây là JsBarcode 3.11.6 (bundle tất-cả-symbology), ghim qua hash Subresource Integrity (SRI) để kẻ tấn công xâm phạm CDN không thể thay thế phiên bản khác. Thư viện được dùng rộng rãi trong plugin WordPress, tiện ích in nhãn, hệ thống POS nhà hàng và ứng dụng kho cho doanh nghiệp nhỏ; đó là lý do "trình tạo mã vạch miễn phí dựa trên trình duyệt" là sản phẩm khả thi ngay từ đầu.
GS1, nơi mã vạch bán lẻ thực sự đến từ
GS1 (Global Standards 1) là tổ chức chuẩn hóa phi lợi nhuận bảo trì UPC, EAN, GTIN-13/14, GLN (Global Location Number) và hệ Application Identifier GS1-128 dùng trong vận chuyển. GS1 có khoảng 117 tổ chức thành viên quốc gia hoạt động ở hơn 150 nước; nhà sản xuất đăng ký với tổ chức GS1 quốc gia của mình, trả phí hằng năm (giá phụ thuộc doanh thu công ty và số sản phẩm) và được cấp tiền tố nhà sản xuất duy nhất trở thành các chữ số đầu của GTIN của mỗi sản phẩm. Nghĩa là: nếu bạn muốn UPC hoặc EAN mà nhà phân phối thực sự sẽ quét và xem là sản phẩm của bạn, bạn cần thành viên GS1. Một mã vạch sinh ở đây với chữ số tùy ý sẽ trông như UPC và quét được như UPC, nhưng tiền tố nhà sản xuất sẽ không được đăng ký dưới tên bạn và quầy của nhà phân phối có thể đánh dấu là sản phẩm không xác định hoặc từ chối tôn trọng. Cho theo dõi tài sản nội bộ, danh mục thư viện, thẻ hội nghị, nhãn lớp học và các dùng phi-thương-mại tương tự, câu hỏi GS1 không liên quan, hãy sinh chữ số bạn muốn.
Trường hợp dùng phổ biến
- Dán nhãn sản phẩm bán lẻ. UPC/EAN thực, nhưng bạn cần thành viên GS1 cho tiền tố nhà sản xuất.
- Dán nhãn tài sản. Mã kho nội bộ cho thiết bị văn phòng, sách thư viện, mẫu lab, vật phẩm bảo tàng. Code 128 với tiền tố tùy biến là chuẩn.
- Nhãn vận chuyển. Code 128 (với Application Identifier GS1 cho serialize) hoặc ITF-14 cho thùng vận chuyển.
- Thẻ hội nghị. Người tham gia được quét tại lối vào session; thẻ thường mã hóa ID đăng ký. Code 128 hoặc Code 39 đều tốt.
- Vé sự kiện. Vé phim, vé concert, vé thể thao, mã hóa phân chỗ và một ID giao dịch duy nhất.
- Kho cho doanh nghiệp nhỏ. Người bán Etsy, hiệu sách độc lập, cửa hàng vintage dùng Code 128 cho SKU nội bộ không phải trả thành viên GS1.
- Lớp học và mượn thư viện. Code 39 là mặc định lịch sử cho hệ thống thư viện (truy về thập niên 1970), nhiều hệ thống danh mục thư viện cũ vẫn mong điều đó.
Chọn định dạng đúng
Cho dùng chung (nhãn tài sản, kho nội bộ, thẻ hội nghị), chọn Code 128, ASCII đầy đủ, mật độ cao, chạy ở mọi nơi. Cho sản phẩm bán lẻ bán trong cửa hàng, chọn UPC-A (Hoa Kỳ/Canada) hoặc EAN-13 (phần còn lại của thế giới), và nhớ rằng bạn cần tiền tố nhà sản xuất đăng ký GS1. Cho thùng vận chuyển, chọn ITF-14 (chuẩn cho thùng ngoài chứa sản phẩm bán lẻ). Cho ứng dụng logistics và quân đội nơi Code 39 do hệ thống hiện hữu áp đặt, chọn Code 39. Cho sản phẩm nhỏ nơi EAN-13 đầy đủ không vừa, chọn EAN-8. Pharmacode là ngách và bạn sẽ biết nếu bạn cần nó. Quy tắc "Code 128 mặc định" bao phủ phần lớn trường hợp phi-thương-mại.
PNG vs SVG, chọn đầu ra đúng
SVG là lựa chọn đúng cho in và mọi ngữ cảnh nơi mã vạch có thể được đổi kích cỡ. SVG là vector: độ rộng thanh giữ sắc nét ở mọi tỉ lệ, từ thumbnail 1 cm trên nhãn đến banner 50 cm. Tệp là XML đơn giản, thường 2-5 KB cho một mã vạch, và có thể nhúng inline trong HTML, mở trong phần mềm thiết kế vector (Illustrator, Inkscape, Affinity Designer), hoặc gửi đến nhà in thương mại không mất chất lượng. PNG là lựa chọn đúng cho ngữ cảnh số nơi kích cỡ cố định và bên nhận không hỗ trợ SVG: email, phần mềm POS cũ, ứng dụng in nhãn để bàn mong bitmap. Đầu ra PNG ở đây render ở 2× độ phân giải cho độ sắc retina; tệp thường 5-15 KB. Quy tắc chung: nếu bạn sẽ in nó, chọn SVG; nếu bạn sẽ gửi qua email hoặc dán vào ứng dụng cũ, chọn PNG.
Quyền riêng tư: vì sao chỉ-trong-trình-duyệt quan trọng ở đây
Bản thân mã vạch không phải bí mật, nhưng giá trị được mã hóa thường là. Mã tài sản nội bộ tiết lộ cấu trúc tổ chức. Nhãn vận chuyển tiết lộ quan hệ nhà cung cấp và địa chỉ khách hàng. Mã mượn thư viện tiết lộ thói quen đọc của người mượn. Sinh mã vạch trên server nghĩa là giá trị đi qua mạng và kết thúc trong log server. Công cụ này mã hóa mọi thứ trong trình duyệt qua JsBarcode, hãy kiểm chứng trong tab Network của DevTools khi bạn bấm Sinh, hoặc đặt trang offline (chế độ máy bay) sau khi đã tải xong và công cụ vẫn hoạt động. An toàn cho dán nhãn SKU nội bộ, mã theo dõi tài sản, sinh thẻ hội nghị, hoặc bất kỳ giá trị mã vạch nào bạn không muốn bị sao vào ổ cứng của người lạ.
Câu hỏi thường gặp
Tôi nên dùng định dạng nào?
Code 128 là mặc định an toàn nhất cho dùng chung, ASCII đầy đủ, mật độ cao, chạy trên mọi máy quét hiện đại. Chọn EAN-13 (quốc tế) hoặc UPC-A (Hoa Kỳ/Canada) cho mã vạch sản phẩm bán lẻ, nhưng nhớ bạn cần thành viên GS1 để tiền tố nhà sản xuất hợp lệ. Chọn Code 39 cho logistics, quân đội hoặc hệ thống thư viện áp đặt. Chọn ITF-14 cho thùng vận chuyển. EAN-8 cho sản phẩm rất nhỏ. Pharmacode là ngách, chỉ dược.
Tôi có thể bán sản phẩm với các mã vạch này không?
Cho dùng nội bộ, theo dõi tài sản, thẻ hội nghị và dùng phi-thương-mại tương tự, có, tự do. Cho sản phẩm bạn dự định bán trong cửa hàng nơi mã vạch sẽ được quét tại quầy và tra trong tệp sản phẩm chính của nhà phân phối, bạn cần một tiền tố nhà sản xuất đăng ký GS1 thật. Không có nó, EAN-13 hay UPC-A bạn sinh ở đây sẽ quét đúng (định dạng hợp lệ) nhưng các chữ số sẽ không đăng ký dưới tên bạn ở bất kỳ hệ thống nhà phân phối nào, và quầy sẽ đánh dấu là sản phẩm không xác định. Thành viên GS1 bắt đầu khoảng 250-1.000 đô la mỗi năm tùy kích cỡ công ty và số sản phẩm.
PNG hay SVG, tôi nên tải cái nào?
SVG cho mọi thứ sẽ được in (vector, co giãn hoàn hảo ở mọi kích cỡ, mở gọn trong Illustrator/Inkscape/InDesign, được nhà in thương mại chấp nhận). PNG cho mọi thứ là số nơi kích cỡ cố định và đích không hỗ trợ SVG (ứng dụng POS cũ, client email gỡ SVG, tích hợp đơn giản trên website). PNG render ở 2× độ phân giải cho độ sắc retina; SVG là XML đơn giản 2-5 KB.
"Vùng tĩnh" là gì và tôi có cần thêm nó không?
Vùng tĩnh là khoảng trắng cần ở các cạnh trái và phải của mọi mã vạch 1D, ít nhất 10× độ rộng thanh hẹp nhất ở mỗi bên. Không có nó, máy quét không thể phát hiện đáng tin nơi mã vạch bắt đầu và kết thúc. Công cụ này tự động bao gồm vùng tĩnh phù hợp trong đầu ra PNG và SVG. Lỗi sản xuất phổ biến nhất là siết mã vạch in sát phần tử nhãn khác để có thêm chỗ, phá vùng tĩnh, hãy giữ lề nguyên khi bố cục nhãn.
Khác biệt giữa UPC-A và EAN-13 là gì?
UPC-A là 12 chữ số và là chuẩn bán lẻ Hoa Kỳ/Canada (giới thiệu năm 1973, lần quét thương mại đầu tiên ngày 26 tháng 6 năm 1974 tại Marsh Supermarket ở Troy, Ohio). EAN-13 là 13 chữ số, chấp nhận quốc tế năm 1976/1977. UPC-A 12 chữ số có thể biểu diễn thành EAN-13 13 chữ số bằng cách thêm 0 vào đầu, phần lớn hệ thống POS hiện đại xử lý cả hai trong suốt. Chữ số bổ sung trong EAN-13 là tiền tố mã quốc gia (Hoa Kỳ/Canada = 0, Pháp = 30-37, Đức = 40-44, Vương quốc Anh = 50, Nhật = 49 hoặc 45, vân vân). Cả hai nay dưới mái GS1 GTIN.
Giá trị mã vạch của tôi có được tải lên không?
Không. Việc sinh chạy hoàn toàn trong trình duyệt qua JsBarcode. Giá trị bạn nhập không bao giờ đi qua mạng, hãy kiểm chứng trong tab Network của DevTools khi bạn bấm Sinh, hoặc đặt trang offline (chế độ máy bay) sau khi đã tải xong và công cụ vẫn hoạt động. An toàn cho mã SKU nội bộ, ID theo dõi tài sản, dữ liệu thẻ hội nghị hoặc bất kỳ giá trị nào bạn không muốn bị sao vào ổ cứng của người lạ.