Barcode4all: un generatore di barcode professionale open source

Barcode 4 all

Da qualche tempo avevo in testa l’idea di realizzare uno strumento per generare barcode professionali — non uno dei soliti tool online che producono un’immagine PNG di qualità discutibile, ma qualcosa di serio, con output vettoriale adatto alla stampa professionale. Il risultato si chiama barcode4all, è open source e disponibile online gratuitamente.

Applicazione online: barcode.4allis.it
Codice sorgente: github.com/lejubila/barcode4all


Perché l’ho fatto

Chi lavora con libri, riviste o prodotti al dettaglio sa bene quanto sia seccante trovare uno strumento per generare un barcode decente. I tool online gratuiti solitamente restituiscono solo JPEG o PNG a bassa risoluzione — inutili per la stampa offset. Le alternative professionali costano un occhio della testa. La mia idea era semplice: un’applicazione web che generi barcode in formato vettoriale (SVG, EPS, PDF), usabile da chiunque, gratis, senza registrazione.


Cosa fa

barcode4all supporta i principali standard di codifica a barre usati in ambito editoriale e commerciale:

  • ISBN-13, ISBN-10 per libri
  • ISSN per periodici e riviste
  • EAN-13, EAN-8 per prodotti al dettaglio
  • EAN-13 + Add-on 2/5 cifre per prezzi e informazioni supplementari
  • UPC-A, UPC-E per il mercato nordamericano
  • Code 128, Code 39 per uso generico

Per ogni barcode è possibile scegliere il formato di output:

  • SVG — vettoriale nativo, perfetto per il web e per importare in Illustrator o Inkscape
  • EPS — PostScript nativo, il formato standard nell’industria grafica (circa 3–4 KB, font Courier non incorporato)
  • PDF — vettoriale, pronto per la stampa
  • JPEG — raster ad alta risoluzione, disponibile a 150, 300 o 600 DPI

C’è anche una anteprima live del barcode che si aggiorna mentre si digita, gestita con Alpine.js senza ricaricare la pagina.

Una funzionalità che mi ha divertito particolarmente implementare è la composizione guidata dei supplementi EAN. Per i libri, il codice add-on a 5 cifre che affianca l’ISBN codifica il prezzo consigliato: la prima cifra indica la valuta (5 = USD, 6 = CAD, 0/1 = GBP e così via), le quattro restanti il prezzo moltiplicato per 100. L’interfaccia permette di inserire valuta e prezzo separatamente e calcola automaticamente il codice. Per le riviste, l’add-on a 2 cifre codifica il numero di edizione progressivo.

Infine c’è la modalità batch: si carica un file CSV con le colonne type,code,addon,output_format e si scarica un archivio ZIP con tutti i barcode generati. Comodo quando si devono preparare decine di codici in una volta.


Lo stack tecnico

Il progetto è costruito su Laravel 11 con PHP 8.2, containerizzato con Docker Compose (tre servizi: php-fpm, nginx, MySQL 8). Per la generazione dei barcode uso la libreria picqer/php-barcode-generator, che produce SVG nativi. Le conversioni verso gli altri formati avvengono così:

  • PDF via barryvdh/laravel-dompdf
  • EPS tramite Ghostscript (SVG → PDF → EPS con gs -sDEVICE=eps2write)
  • JPEG tramite librsvg (rsvg-convert) e ImageMagick

Il frontend è Blade + Alpine.js + Tailwind, tutti i file serviti in self-hosting — nessuna richiesta a CDN esterni, nessuna terza parte coinvolta.

Una nota tecnica che potrebbe interessare: la libreria picqer/php-barcode-generator non supporta nativamente i supplementi EAN. Ho quindi implementato la composizione manuale in SVG: si genera separatamente il barcode principale e il simbolo add-on, poi si uniscono i due SVG calcolando l’offset X corretto e aggiungendo il testo del supplemento sopra le barre.


Come installarlo

Serve solo Docker. Tre comandi e si è operativi:

cp .env.example .env
docker compose up -d
docker compose exec app composer install
docker compose exec app php artisan key:generate
docker compose exec app php artisan migrate
docker compose exec app php artisan storage:link

Poi si apre http://localhost:8080. Per chi vuole metterlo in produzione dietro un reverse proxy Apache con HTTPS, il README contiene la configurazione necessaria per gestire correttamente gli header X-Forwarded-Proto.


Il ruolo di Claude Code

Devo essere onesto: questo progetto è stato sviluppato in larga parte con l’aiuto di Claude Code. Il file CLAUDE.md nel repository contiene il piano di progetto che ho scritto per guidare lo sviluppo assistito da AI — descrive la struttura del progetto, le fasi di implementazione, le specifiche tecniche dei vari componenti e le note sugli algoritmi più delicati (check digit, composizione dei supplementi EAN, conversione SVG→EPS).


Se vi capita di aver bisogno di generare un barcode per un libro, una rivista o un prodotto e non volete installare nulla, provatelo direttamente su barcode.4allis.it. Il codice è su GitHub sotto licenza MIT — contributi benvenuti.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.