EAN-13

EAN-13 hay EAN.UCC-13 hoặc DUN-13 là một loại mã vạch trước đây thuộc quyền quản lý của Hệ thống đánh số sản phẩm châu Âu (tiếng Anh: "The European Article Numbering system", viết tắt: EAN), ngày nay thuộc quyền quản lý của EAN-UCC sử dụng 13 chữ số.

Trước đây ở Mỹ người ta sử dụng một hệ thống đánh số sản phẩm cùng nguyên lý như EAN nhưng chỉ có 12 hoặc 8 số, gọi là Mã sản phẩm chung (tiếng Anh:"Universal Product Code", viết tắt: UPC). Nhưng kể từ tháng 1 năm 2005, người Mỹ đã chuyển sang sử dụng EAN.

Hệ thống đánh số sản phẩm Nhật Bản ("The Japanese Article Numbering") (viết tắt: JAN) là một phiên bản của EAN-13, điểm khác duy nhất là nó bắt đầu với cụm số "49".

Gọi là EAN-13 vì trong chuỗi mã hóa của nó có đúng 13 số, trong đó số cuối cùng là số kiểm tra. Cũng giống như UPC (EAN.UCC-8 hay EAN.UCC-12), nó là loại mã vạch liên tục sử dụng bốn loại kích thước các vạch.
== Đặc trưng ==
- EAN-13 sử dụng 2 (hoặc 3) ký tự đầu tiên làm mã quốc gia hay mã loại hình sản phẩm (tồn kho, báo chí). Các số này không thay đổi theo từng quốc gia và do tổ chức EAN quốc tế quy định. Các loại mã vạch thuộc UPC trên thực tế là một tập con của EAN-13. Các máy quét đọc được các mã vạch EAN có thể đọc rất tốt các mã vạch UPC. Tuy nhiên, các máy quét UPC không nhất thiết phải đọc được các mã vạch EAN.
- Năm (nếu có 2 số chỉ mã quốc gia) hoặc bốn (nếu có 3 số chỉ mã quốc gia) chữ số tiếp theo chỉ mã của nhà sản xuất. Các số này do tổ chức EAN tại quốc gia mà mã EAN được in cấp cho nhà sản xuất với một lệ phí nhỏ.
- Năm số tiếp theo đó là mã sản phẩm của nhà sản xuất, do nhà sản xuất tự điều chỉnh. Thông thường để dễ quản lý, người ta hay đánh mã sản phẩm từ 00000 đến 99999. Như vậy có thể có tới 100.000 chủng loại sản phẩm khác nhau đối với một nhà sản xuất.
- Số cuối cùng là số kiểm tra, phụ thuộc vào 12 số trước nó.

== Mã quốc gia ==
Dưới đây là một phần mã quốc gia. Cụ thể hơn xem trong trang chủ của tổ chức EAN quốc tế. Lưu ý rằng nó chỉ thị quốc gia ở đó người ta phát hành mã này chứ nó không nhất thiết phải là xuất xứ của sản phẩm.
== Quy tắc tính số kiểm tra ==
Số kiểm tra là số thứ 13 của EAN-13. Nó không phải là một số tùy ý mà phụ thuộc vào 12 số đứng trước đó và được tính theo quy tắc sau:
- Lấy tổng tất cả các số ở vị trí lẻ (1,3,5,7,9,11) được một số A.
- Lấy tổng tất cả các số ở vị trí chẵn (2,4,6,8,10,12). Tổng này nhân với 3 được một số (B).
- Lấy tổng của A và B được số A+B.
- Lấy phần dư trong phép chia của A+B cho 10, gọi là số x. Nếu số dư này bằng 0 thì số kiểm tra bằng 0, nếu nó khác 0 thì số kiểm tra là phần bù (10-x) của số dư đó.

Số kiểm tra được thêm vào cuối chuỗi số có 12 chữ số ban đầu tạo ra chuỗi số EAN-13 có 13 chữ số. Tuy nhiên, trong thực tế sản xuất mã vạch, số này đã được thêm vào cuối chuỗi, nhưng các phần mềm in ấn mã vạch nên có phần kiểm tra lại số này trước khi in, nhằm tránh các sai lầm do sai sót dữ liệu.

== Cấu trúc mã vạch ==
Quy ước: "Các bit có giá trị 1 được in bằng mực đen thành một đường thẳng đứng, các bit có giá trị 0 không được in (hoặc được in bằng mực trắng) thành một đường thẳng đứng có cùng độ rộng với bit có giá trị 1".
Cấu trúc của mã vạch EAN-13 như sau:

Các vạch bảo vệ trái - 6 số kể từ số thứ hai đến số thứ bảy - các vạch bảo vệ trung tâm - 5 số tiếp theo (8-12)- số kiểm tra - các vạch bảo vệ phải

Phía trước các vạch bảo vệ trái và phía sau các vạch bảo vệ phải luôn luôn phải có các khoảng lặng trắng để tránh việc máy quét đọc sai.

Việc mã hóa của 6 số từ vị trí thứ 2 đến vị trí thứ 7 phụ thuộc vào giá trị của số đầu tiên theo quy tắc chẵn -lẻ dưới đây.
Các số từ vị trí 8 đến vị trí thứ 13 được mã hóa theo chuỗi đảo ngược của mã hóa lẻ (xem bảng dưới đây) của số có giá trị tương ứng theo bảng dưới đây. Ví dụ số 0 có mã hóa lẻ là "0001101" thì khi được mã hóa ở các vị trí từ 8 đến 13 sẽ là "1110010".

Các vạch bảo vệ trái và phải có giá trị bit là 101. Các vạch bảo vệ trung tâm có giá trị bit là 01010. 
=== Mã hóa chẵn lẻ ===
Chuỗi mã hóa chẵn hay lẻ của các giá trị số từ 0 đến 9 được liệt kê trong bảng sau:

Nó được áp dụng để in các số từ vị trí thứ 2 đến vị trí thứ 7.

== Cách in ==
Khi in ấn, các vạch bảo vệ này được in dài hơn so với các vạch của dữ liệu về phía dưới. Số đầu tiên được in bên ngoài và phía dưới của vạch bảo vệ trái. Sáu số tiếp theo được in phía dưới các vạch của chúng trong khoảng các vạch bảo vệ trái và các vạch bảo vệ trung tâm. Sáu số cuối được in phía dưới các vạch của chúng trong khoảng các vạch bảo vệ trung tâm và các vạch bảo vệ phải. Chiều rộng của mã vạch quyết định mật độ in ấn cũng như khả năng đọc chuẩn xác cao hay thấp của máy quét. Chiều cao của các vạch không ảnh hưởng đến việc này nhiều lắm. Tuy nhiên, thông thường chiều cao của mã vạch được in với độ rộng khoảng 1 đến 2,5 cm là chủ yếu.

Công nghệ in ấn sử dụng hai phương pháp như sau:
1. Sử dụng các true type font chữ đặc biệt tạo sẵn. Các font chữ này thực chất là tổ hợp các vectơ của các hình chữ nhật- được các nhà tạo font chữ bán với giá khoảng 300 đến 500 USD một bộ. Các font chữ này được lưu trữ dưới dạng vectơ nên ít bị ảnh hưởng khi hiển thị trên màn hình máy tính cũng như khi in ra.
2. Sử dụng các lệnh đồ họa trong các ngôn ngữ lập trình để vẽ các đường thẳng. Cách này đơn giản hơn nhưng khi hiển thị trên các thiết bị màn hình có độ phân giải thấp bị ảnh hưởng nhiều (do các đường được vẽ theo đơn vị pixel - là khá lớn so với độ rộng của các vạch). Tuy nhiên khi gửi lệnh in trực tiếp đến máy in thì không bị ảnh hưởng nhiều do được in theo từng điểm in (dot).

== Xem thêm ==
- CorelDRAW các phiên bản mới thường có cài đặt sẵn bộ phần mềm tạo mã vạch: Menu - Edit - Insert Barcode.

== Liên kết ngoài ==
- PHPSVGBarcode. Chương trình tạo mã vạch định dạng