Ultimamente, sul lavoro, mi è capitato di dover inserire codici a barre (in formato EAN-13) all’interno di fogli di calcolo, partendo dal codice che il barcode rappresenta.
La soluzione più semplice (e interoperabile, mi interessa che funzioni senza intoppi sia con OpenOffice che con Excel) è quella di usare un font che rappresenti il codice a barre. Siccome però la codifica dell’EAN non è 1-1 fra cifra e sequenza di barre-spazi, non basta inserire il codice e visualizzarlo con il font corretto: è necessario passare dal codice iniziale a una stringa che, visualizzata con il font EAN-13, rappresenti il codice a barre corretto.

La documentazione è abbondante, ma i font Truetype per rappresentare codici a barre sono per la maggior parte a pagamento: fortunatamente sono riuscito a trovare un francese che distribuisce gratuitamente un font di questo tipo, oltre a molte informazioni utili sul suo utilizzo.
Esempio
Non avendo particolare simpatia per le macro (e vorrei evitare problemi di compatibilità), ho preferito realizzare qualche formula per visualizzare il barcode a partire dal codice. Il risultato è probabilmente meno elegante, ma per i miei scopi è una soluzione migliore.
- EAN-13 Truetype Font (.ttf)
- Esempio di barcode EAN-13 in OpenOffice Calc (.ods)
- Esempio di barcode EAN-13 in MS Excel (.xls)
Grazie ai suggerimenti di Angelo, adesso i file funzionano correttamente anche con Excel 2002.
Installare un font Truetype
Esistono molte guide per l’installazione di un font Truetype in un sistema Ubuntu. Se usi un’altra distribuzione il procedimento sarà simile e su Google puoi trovare tonnellate di documentazione dettagliata. Per Windows, è sufficiente copiare il file TTF nella cartella C:\WINDOWS\FONTS (o C:\WINNT\FONTS).
E per i barcode EAN-8?
Poco tempo dopo la pubblicazione del post, Augusto mi ha inviato una soluzione anche per i barcode EAN-8. Lo ringrazio molto e pubblico il file: in questo caso, purtroppo, i font necessari non sono disponibili liberamente ma vanno acquistati.
- Font per barcode, acquistabili da FontwareBarcodes.com
- Esempio di barcode EAN-8 in MS Excel (.xls)
Se conoscete font EAN-8 da scaricare gratuitamente, fatemelo sapere e provvederò volentieri a pubblicarli.
Novità per i barcode EAN-8!
Qualche giorno fa, Antonio mi ha scritto allegandomi una soluzione per i barcode EAN-8 che utilizza lo stesso font utilizzato per i barcode EAN-13. Mi sembra un’ottimo lavoro e lo pubblico immediatamente. Il file è un po’ “grezzo”, ma non è che il mio fosse uno splendore




Mitico! Grazie, davvero utilissimo
Pingback: ZicZac.it, clicca qui e vota questo articolo!
Pingback: diggita.it
Pingback: pligg.it
Pingback: Quale tecnica cross-browser per usare i font installati sul client? - Matteo Moro
Hey complimenti per il sito, ti va uno scambio link in Blogroll? Se si lasciami un commento sul mio
@Dario:
Grazie per i complimenti, ma niente scambio link
Ciao,
complimenti innanzitutto per l’applicazione ; testandolo nella versione di Excel 2002 ho trovato degli errori tipo “#N/D”.
Il problema, a mio avviso, sta nella estrapolazione come “testo” dalla casella input, che rende inutilizzabile tale “testo” come valore numerico di calcolo.
La soluzione che ho trovato é:
aggiunta nelle celle D2,E2,F2,G2,H2,I2,J2,K2,L2,M2,N2,O2,P2 della funzione “Valore” prima delle funzioni di estrapolazione.
Ad esempio, nella cella D2 da:
=DESTRA(SINISTRA($A2;D$1);1)
a
=VALORE(DESTRA(SINISTRA($A2;D$1);1))
facendo questa modifica il programma funziona ottimamente con Excel 2002.
Ringrazio l’autore e spero che questo mio contributo possa giovare a tutti.
Ciao
Angelo
@Angelo:
Ti ringrazio molto per le correzioni, le ho inserite nei file da scaricare.
Sei un mito! non solo per la soluzione ma anche perche’ in due righe ho capito come funzionano i codici ean13.
Hola!
@Noc77:
Ti ringrazio, sono felice che il post ti sia stato utile!
Grazie ..Ottimo lavoro.
purtroppo ho verificato che il non funziona laddove il codice è di 8 cifre.
Nonostante abbia modificato la tabella in modo da evitare il printout delle cifre successive all’ottava, il codice grafico è diverso.
Sicuramente il file xls non prevedeva questo tipo di codice ….. ma qualcuno è in grado di aiutarmi?
Grazie
Grazie per la soluzione excel mi è tornata molto utile. Se necessita io ho sviluppato la soluzione Ean-8 con calcolo del Ceck digit in Excel e relativi font.
@Augusto:
Magari, sarebbe una gran bella cosa!
Ciao ti ho mandato il tutto ! Per gestire gli Ean 8 fammi sapere se ti è interessato !!
chi mi può aiutare a costruire ean 8 per portare la formula in excel, con relativo font?
@luigi:
Augusto mi ha inviato un bel po’ di tempo fa la soluzione per gli EAN-8 (come puoi vedere dai suoi ultimi commenti). Con colpevole ritardo, gli ho mandato solo oggi un’ultima bozza di quello che intendo pubblicare, penso che fra qualche giorno darà tutto online. Me ne scuso con tutti gli interessati.
Per quanto riguarda gli EAN-8, i font non sono gratuiti ma vanno acquistati da questo sito: http://www.fontwarebarcodes.com/barcodes_singles.aspx
Se qualcuno conosce alternative gratuite per i font EAN-8 si faccia sentire
Ho aggiornato il post con il file relativo ai barcode EAN-8. Ringrazio di cuore Augusto per la collaborazione (e la pazienza, visto il tempo che ci ho messo a pubblicare il suo file).
Ciao Matteo, grazie per il tuo prezioso contributo.
Ho provato, ho stampato con successo, ma quando leggo, il lettore di codice a barre non legge nulla, mentre legge la stampa di altri EAN13. Ho stampato con varie dimensioni del font, ma il risultato non cambia. Hai qualche suggerimento ?
Ringrazio anticipatamente.
Andrea
Ciao, io invece trovo errori nella traduzione di un codice in barcode.
Esempio: Il codice 510030728503, viene tradotto in barcode 5100307285043, ma è sbagliato, perchè in realtà è 5100307285034.
C’è qualcosa che sbaglio io ?
Grazie
@Andrea:
Ciao Andrea, i problemi (escludendo la dimensione del barcode in stampa, nelle mie prove mi sono accorto che sotto i 20 c’erano problemi) possono essere di due tipi: la stampante o il dispositivo che legge il barcode. Nel mio caso non ho fatto molte prove, a dire il vero, ma non ho avuto problemi stampando con una HP Laserjet 4000 e leggendo con un terminale Denso BHT-420 (http://www.lexter.it/palmari/bht-420.htm).
Considerato poi che il mio foglio di calcolo non controlla la correttezza del check-digit, potrebbe semplicemente essere sbagliato: alcuni lettori (compresi quelli che uso qui) rifiutano di leggere il barcode se il check-digit non è corretto.
@fabiano:
Sbagli nell’inserire solo 12 cifre. Il foglio non calcola il checkdigit e si aspetta 13 caratteri come input, senza fare troppi controlli.
Ciao,
grazie!!! Veramente utilissimo.
Volevo chiedervi un aiuto, io devo creare per i miei prodotti i codici a barre EAN 13, mi date per favore una chiave di creazione?
Cioè che logica posso utilizzare per la creazione da zero?
Grazie.
Marco
Allora per creare Ean-13 bisogna farsi fornire dal Indicod il proprio range di codifica. Se ti colleghi al loro sito è inoltre possibile avere il manuale facilmente scaricabile (è praticamente una bibbia), dopo dipende dall’uso che ne vuoi fare. Per uso interno la chiave che indicod ha lasciato per libero uso inizia per 20 e 21 quindi il codice può essere 20xxxxxxxxxx(c) – (c) stà per ceck digit ma non mi sono ancora dilettato a caricarmi l’algoritmo di calcolo. Se un giorno lo faccio lo pubblico qui.
Ciao Matteo.
Scusa la mia ignoranza, avrei bisogno di capire come funzione il file exel.
Poi darmi una piccola spiegazione.
Grazie.
@Mauro:
C’è poco da spiegare: installi il font (su google trovi procedure per qualunque sistema operativo), salvi il file Excel, lo apri, scrivi il codice EAN-13 nella colonna “CODICE” (dove adesso c’è 1234567980123) e nella colonna BARCODE troverai il codice a barre.
Se vuoi averne più di uno, devi copiare l’intera riga 2 e ripetere il procedimento.
Ciao,
per caso hai qualche dritta per stampare il codice a barre in Microsoft Word?
Scenario:
Ho un campo word che viene valorizzato con caratteri alfanumerici da 8-10 cifre.
Vorrei avere un altro campo in cui la stessa stringa è convertita in barre.
Devo mettermi a creare macro?
Grazie per qualunque suggerimento, niubbo totale.
@marco:
Mi sa che devi creare una macro per convertire il codice nella stringa da visualizzare con il font corretto.
Ciao Marco.
Scusa ma non cambia nulla.
Ho installato i font
Ho scritto nella prima colonna il codice EAN13, ma nella terza colonna non varia.
Grazie della tua disponibilità.
avrei bisogno di aiuto per stampare degli ean-8 e mi è sembrato di capire che Augusto ha la soluzione x excel.
ve ne sarei davvero grato.
Ciao
@Pino:
Trovi la soluzione di Augusto a fondo post, ma non ho trovato font EAN-8 scaricabili gratuitamente.
Complimenti per l’applicazione, veramente fantastica!!!!
Ora vorrei provare a ricrearla in visual basic – crystal report,
quindi ti chiedo se cortesemente potresti darmi la tabella di
trascodifica per passare da una cifra al font.
Es. la prima cifra del codice è = alla prima cifra del font
la seconda cifra = ?
………
la tredicesima riga = ?
@Francesco:
La tabella è direttamente nel foglio Excel, insieme alle formule.
Il prob. è che non sono molto pratico di excel, la formula che utilizzi non so che cosa fa e come lo fa.
se cortesemente (vista la mia poca conoscenza) potresti spiegarmi come vengono convertite le cifre.
grazie
@Francesco:
A questo link, oltre allo stesso font EAN-13 utilizzato nel mio post, ci sono anche tutte le spiegazioni necessarie alla codifica: http://grandzebu.net/index.php?page=/informatique/codbar-en/ean13.htm
Ottimo, l’unica cosa che non capisco è perchè nella routine vb il numero delle cifre è da 12 invece che da 13
La tredicesima cifra è di controllo e si calcola a partire dalle prime 12
Sei un grande!!!!!
Tutto perfetto
Ciao,
per calcolare il check digit dell’EAN-13 devi sommare le 6 cifre dispari del codice e moltiplicarne la somma per 3. Al valore ottenuto, sommi tutte e 6 le cifre pari.
A questo punto la cifra ottenuta, dev’essere sottratta alla cifra stessa, arrotondata alla decina superiore.
Esempio:
Codice : 803346209006
Somma cifre dispari moltiplicata per 3: 0+3+6+0+0+6= 15 x 3= 45
Somma cifre pari alla somma ottenuta: 45+8+3+4+2+9+0= 71
L’arrotondamento alla decina superiore di 71 è 80
Quindi: 80-71 = 9
Il check digit del codice è 9
Ciao Roberto
Grandissimo guida e tool utilizzimo
Ciao ho una necessità, devo inserire in un excel un range di barcode, già in mio possesso,
per non caricarmeli uno ad uno con la pistola laser esiste un modo che mi consente, inserendo il primo o primo ed ultimo di generare i codici intermedi?
Ciao a tutti
Marco
Ottima guida e ottimo lavoro. Cortesemente qualcuno potrebbe indicarmi le modifiche da effetturare per permettere la creazione di codici a barre ean13+5? Grazie anticipatamente.
Bhé in mancanza di risposte
ho provveduto direttamente ha modificare e aggiungere al file excel attuale l’implementazione del plugin di 5 digit: Per chi ne avesse bisogno questo è il link: http://tonyfire.altervista.org/2010/09/26/come-creare-codici-barre-barcode-ean-13-5-calc-excel/
@Tonino:
Ottimo, questo è lo spitiro giusto! Grazie per il contributo
grazie per il post bellissimo lavoro.
ho un problema però se inserisco un ean 13 con doppio 0 iniziale, dopo le opportune modifiche alla cella, lo stampa bene (nel senso che vedo il doppio 0 nel codice) ma i lettori lo rilevano come singolo 0. quindi il codice 0012345678910 viene visto come 012345678910 come posso risolvere?
Ciao, penso che tu ti trova davanti ad un UPC-A (Ean Americano), questi codici hanno lunghezza 12 e iniziano con zero (parecchi). Non mi risulta esistano EAN-13 inizianti per 00 ma per conferme vai al sito Indicod. Ciao
esistono giuro. sono ean 13 con 00 iniziale
Ma perchè non ho trovato questo sito prima? il vostro tutorial è utilitssimo ma ho comprato da poco su questo sito http://www.ean13-code.com/indexi.html dei codici a basso prezzo per la mia azienda, e mi sono trovato bene, ma non pensavo che si potessero fare anche così, peccato! averlo saputo prima…
Ti ringrazio per i complimenti, ma attenzione: un conto è creare il barcode relativo ad un codice EAN (che è quello che spiego in questo articolo), altra cosa è essere assegnatari di codici EAN (si tratta di questioni burocratiche fra la tua azienda e Indicod, indipendenti dalla modalità che userai poi per rappresentare o stampare tali codici).
Grazie per la risposta, sei stato molto esaudiente
SALVE
ESISTE QUALCOSA DI SIMILE PER CREARE I BARCODE – 128?
per favore aiutatemi
grazie
ciao,
ho scaricato il .ttf ed i file .ods per generare i codici EAN-13.
Ma mi serviva di realizzare i codici EAN-8, ho cercato un po’ in giro e documentandomi sono riuscito a modificare le formule per generare i codici EAN-8 utilizzando lo stesso font. Almeno credo, ho verificato solo leggendo con il cellulare e l’ha letto bene. Se vuoi ti mando il foglio modificato, scrivimi un messaggio e te lo posso inviare, al momento non ho possibilità di allegare al commento.
Ciao e grazie per le preziose indicazioni.
Antonio
Sarebbe fantastico, grazie. Mandamelo pure via mail e (se vuoi) lo pubblico subito.
Grazie, mi diletto nella mia piccola azienda adesso sparo con la pistola e fatturo direttamente, ma ho il problema con gli ean 8. Leggendo, Ant1 è riuscito a modificare le formule per generare i codici EAN-8 utilizzando lo stesso font, si sa qualcosa?
Ciao
Proprio qualche giorno fa mi ha mandato un foglio Excel per i barcode EAN-8. Questa sera aggiorno il post e lo pubblico.
Attendo con ansia,.
Grazie ancora..
Ho aggiornato il post con un esempio di barcode EAN-8 che utilizza lo stesso font dei barcode EAN-13. Ringrazio Antonio per l’ottimo lavoro!
Ho un piccolo problema, non vedo le formule, perchè io uso excel.
Ciao e grazie
Ho aggiunto la versione Excel, anche se avere Openoffice installato non costa niente e spesso salva da molti problemi.
ciao, come avevo accennato nel post nel mio blog, avevo l’esigenza di realizzare i codici EAN-8 da un programma in Visual C++ e la soluzione più veloce che ho trovato è stata quella di realizzare una pagina HTML che tramite un foglio di stile CSS possa disegnare i codici a barre EAN-8 o EAN-13 con il font TrueType, la logica di generazione delle stringhe, derivata dalle formule del tuo foglio di calcolo, risiede nel programma che genera l’HTML. Ti ringrazio di nuovo per le indicazioni che ho trovato in questo articolo.
Riporto il link al mio articolo se può interessare: http://ant1-antuan.blogspot.com/2011/06/codici-barre-ean-13-e-ean-8-con-html.html
Ho risoto anche se in parte, devo inerire col copia incolla dove ho gli EAN-8 ma non è un problema, una volta salvati tutti gli articoli. Volevo ringraziare per la tempestività e gentilezza…rara oggi giorno.
Ciao e grazie
Ciao scusate se disturbo ma trattate un argomento che mi piacerebbe approfondire:
premetto che di database e affini non ci capisco una cippa però vorrei inserire in un elenco di codici a barre da me precedentemente creato in un foglio di calcolo di open office una macro o un istruzione qualsiasi per cui inserito il codice EAN mi andasse ad evidenziare la riga corrispondente.
ps onore a voi tutti vi stimo
emilio
Se ho capito il problema, bisognerebbe avere esperienza di macro (che onestamente non ho). Passo a chi ne sa di più.
grazie lo stesso : )
Ciao,
io avevo il tuo stesso problema ed ho utilizzato MARDOM MAGAZZINO. Sono sicura che funziona su excel però non so se è compatibile con open office.
ciao
marta
ps
lo puoi scaricare qui: http://www.mardom.it/maga2.htm
ps2
complimenti per la documentazione
Ciao per ovviare il mio problema (che proprio non riesco a risolvere) utilizzo la funzione “trova” nel mio foglio elettronico (…la funzione trova è quella con il binocolo).
recentemente però ho ideato un sistema simpatico per avere tutti i miei dati immediatamente sotto mano : creato un foglio di lavoro con tutti i miei dati (io uso open office) lo salvo in formato .xls, lo carico sul mio smartphone e utilizzo un “app” (gratuita) per leggere i codici a barre e sempre con la funzione “trova” mi evidenza quello che mi interessa.
veloce, pratico e, molto importante, gratuito!!!
ciao a tutti
Bella guida.. Non trovo piu’ il fonts .. non riesco a scaricarlo.. Riesci ad inviarmelo? Grazie
Trovi il link direttamente nell’articolo…