Generare codici a barre EAN13 vetoriali e con zint + epstopdf

Realizzare codici a barre a partire da un elenco testuale di codici è una impresa semplice se sono pochi, ci sono strumenti online come questo che rendono veramente semplice creare qualche paio di codici in modo veloce, ma, cosa succede se necessiti realizzare centinaia?

Avere a disposizione una macchina Linux per i vostri lavori di grafica è uno strumento indispensabile e anche questa volta andremo ad utilizzare due strumenti gratuiti messi a disposizione proprio per questo sistema operativo.

  • Zint per generare i codici a barre in batch a partire da un documento di testo contenente i nostri codici
    Come istallare zint?
  • epstopdf contenuto nella libreria TeX Live
    Come istallare tex live? è disponibile nella repo di ubuntu, quindi basta un semplice:
    sudo apt install texlive-font-utils

Una volta istallato il tutto il processo è veramente semplice, prima di tutto procediamo a realizzare il documento con tutti i numeri dei nostri codici a barre, uno per riga, esempio:

8027836022800
8027836022770
8027836022763
8027836022787
8027836022794
8027836010333
8027836018544
8027836018544
8027836019169
8027836017936
8027836022558

È importante inserire il numero del codice a barre completo di cifra di controllo, zint vi darà un errore se questo valore manca.

Salviamo il nostro documento, io lo chiamerò generatecodes.txt e posizioniamolo, per praticità nella cartella dove volete generare i codici. Adesso, per generare i codici basta inserire il seguente comando:

zint -b 14 -o bc~~~.eps --filetype=EPS --batch -i ../generate.txt

Il commando in dettaglio:

  • -b 14 indica il tipo di codice che vogliamo generare (vedi la documentazione per tutti i tipi di codici disponibili nella libreria)
  • -o bc~~~.eps per indicare il template per il nome dei file del nostro batch, ( ~ sta per 0 oppure un numero progressivo)
  • --filetype=EPS per selezionare il tipo di file che vogliamo (sono disponibili anche svg, png e altri)
  • --batch per dirgli a zint che vogliamo generare vari codici a barre in batch
  • -i ../generate.txt per indicare il file che vogliamo che venga letto riga per riga per generare i codici a barre

Premette invio e zint in un batter d’occhio genera tutti i vostri codici a barre 🙂

Purtroppo i files generati hanno un nome un po’ criptico, a me piace riuscire a trovare il codice a barre utilizzando la ricerca di Windows e per fare ciò utilizzo una nomenclatura che rispecchi qualcosa tipo <codice_prodotto>-<ean13>.eps

Per rinominare tutti i file in un colpo solo creo un nuovo file di testo che chiamerò per praticità filenames.txt dove vado ad inserire i nomi dei file nello stesso ordine con il quale sono stati generati, in questo caso:

AN-030-8027836022800.eps
AN-081-8027836022770.eps
AN-102-8027836022763.eps
AN-103-8027836022787.eps
AN-105-8027836022794.eps
1AN001-8027836010333.eps
1AN004-8027836018544.eps
1AN016-8027836018544.eps
1PS008-8027836019169.eps
1PT001-8027836017936.eps
1PT003-8027836022558.eps

Una volta creato il file con i nomi utiliziamo questo one-liner (il file dei nomi deve stare nella stessa cartella dove ci sono i codici a barre)

for file in *.eps; do read line; mv -v "${file}" "${line}"; done < ../filenames.txt

Ecco, adesso tutti i vostri file hanno un nome coerente!

Se non avete la necessità di convertire questi codici in *pdf, diciamo che avete finito, bravi! Ma lavorando in Adobe Illustrator si inserisce un file *eps e provate a convertirlo in curve utilizzando Flatten Transparency non vi verrà consentito e vi inviterà a incorporare prima il file. Faccendo ciò e non avendo Helvetica nel vostro sistema operativo, vi troverete con il font mancante.

Utilizzando un file pdf possiamo convertire il tutto in tracciati senza la necessità di incorporare prima il file, quindi, fine dei problemi dei font mancanti.

Ecco a cosa ci serve epstopdf: con un one linersimile a quello utilizzato per rinominare i file convertiamo tutti i nostri codici a barre:

for f in *.eps; do epstopdf "$f" && rm "$f"; done

Questa volta la conversione perderà un pochino più di tempo ma una volta completato il commando, tutti i codici a barre saranno belli e pronti per essere utilizzati.