Codici a Barre EAN 8 e 13

Teoria, storia e struttura dei codici a barre EAN-8 ed EAN-13, con confronto visivo e algoritmo per calcolare la cifra di controllo.

I codici a barre EAN (European Article Number) sono standard internazionali utilizzati per identificare in modo univoco i prodotti. Le versioni più comuni sono:

  • EAN-13: composto da 12 cifre + 1 cifra di controllo
  • EAN-8: composto da 7 cifre + 1 cifra di controllo

Breve storia dei codici EAN

Il sistema EAN nasce negli anni ’70 come estensione del codice UPC (Universal Product Code) sviluppato negli Stati Uniti. L’obiettivo era creare uno standard compatibile a livello internazionale per la codifica dei prodotti.

  • EAN-13 fu introdotto nel 1977 per permettere una codifica più ampia rispetto al formato UPC a 12 cifre.
  • EAN-8 fu introdotto successivamente per prodotti di piccole dimensioni, dove lo spazio per la stampa del codice a barre è limitato.

Oggi entrambi i formati sono gestiti da GS1, l’organizzazione globale che assegna i prefissi e garantisce l’unicità dei codici.

Struttura del codice EAN-13

Un codice EAN-13 è composto da:

  1. Prefisso GS1 (3 cifre): identifica il paese o l’organizzazione
  2. Codice azienda (variabile): assegnato dal GS1 locale
  3. Codice prodotto (variabile): scelto dall’azienda
  4. Cifra di controllo: calcolata automaticamente

Esempio: 800123456789X Dove X è la cifra di controllo calcolata.

Calcolo della cifra di controllo (EAN-13)

Si usa un algoritmo di modulo 10:

  1. Somma delle cifre in posizione dispari (escluse la cifra di controllo)
  2. Somma delle cifre in posizione pari, moltiplicata per 3
  3. Somma totale = somma dispari + (somma pari × 3)
  4. La cifra di controllo è il numero che, sommato alla somma totale, dà un multiplo di 10
int CalcolaEAN13CheckDigit(const std::string& codice12) {
    int somma = 0;
    for (int i = 0; i < 12; ++i) {
        int cifra = codice12[i] - '0';
        somma += (i % 2 == 0) ? cifra : cifra * 3;
    }
    int modulo = somma % 10;
    return (modulo == 0) ? 0 : 10 - modulo;
}

Struttura del codice EAN-8

Simile all’EAN-13, ma più compatto:

  1. Codice prodotto (7 cifre)
  2. Cifra di controllo (1 cifra)

Il calcolo della cifra di controllo segue lo stesso principio del modulo 10.

Confronto visivo tra EAN-13 ed EAN-8

CaratteristicaEAN-13EAN-8
Lunghezza totale13 cifre8 cifre
UtilizzoProdotti di dimensioni normaliProdotti molto piccoli
CodificaPrefisso + azienda + prodottoSolo codice prodotto
Cifra di controlloCalcolata su 12 cifreCalcolata su 7 cifre
Spazio richiestoMaggioreMinore
Compatibilità UPCSì (UPC-A è compatibile)No

Implementazione nei software RGPSoft

Nei software gestionali di RGPSoft, è stata realizzata una classe derivata da CStatic che disegna il codice a barre direttamente nel controllo. La funzione SetCodix() accetta 12 cifre per EAN-13 e 7 per EAN-8, calcola internamente la cifra di controllo e disegna il codice.

Schermata principale di MerciGest che mostra il codice a barre dell’articolo selezionato

Questa soluzione è elegante perché:

  • Astrae il calcolo della cifra di controllo
  • Incapsula il rendering grafico
  • Può essere facilmente adattata ad altri ambienti (SDK Win32, Linux, C#, PHP…)

Se interessa, si può realizzare un tutorial pratico per mostrare come disegnare le barre o trasformare la classe in un componente riutilizzabile.

Giampaolo Rossi
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Articoli: 324

Lascia una risposta

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.