Creare barcode EAN-13 senza usare macro con Openoffice Calc (e anche con Excel, dai)
16 febbraio 2009, scritto da Matteo
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.
Ti è piaciuto l'articolo, eh? OFFRIMI UNA BIRRA! (è sufficiente essere iscritti a Paypal o avere una carta di credito, anche Postepay)














Newsletter
RSS articoli
RSS commenti





Mitico! Grazie, davvero utilissimo
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.