2010-03-20 19 views
13

Questa domanda non riguarda la "migliore" raccomandazione di libreria barcode, utilizziamo vari prodotti su piattaforme diverse e abbiamo bisogno di un modo semplice per verificare se un dato codice a barre è corretto (secondo le sue specifiche).Dove posso trovare "codici a barre di riferimento" per verificare l'output della libreria di codici a barre?

Abbiamo trovato casi in cui un codice a barre viene reso in modo diverso da diverse librerie di codici a barre e free online barcode generators in Internet. Ad esempio, una nuova versione di una libreria di report Delphi restituisce caratteri non numerici in Code128 come "0" o semplicemente li salta nell'area di testo. Prima di eseguire la migrazione, vogliamo verificare se queste modifiche sono causate da un'implementazione non funzionante nella nuova libreria in modo che possiamo segnalarlo come un bug all'autore.

Abbiamo principalmente bisogno di Code128 e UCC/EAN-128 con sottocodi A/B/C.

Risorse online ho controllato fino ad ora sono:

Mostrano anche risultati diversi, ad esempio e in supporto per caratteri come virgola o segni più, almeno nel testo leggibile dall'uomo.

+0

Ci sono vari strumenti che generano codici a barre per te; non sono sufficienti? – Joey

+1

Abbiamo scoperto che generano immagini di codici a barre diverse per lo stesso valore di input e lo stesso tipo di codice a barre e non sanno quale sia corretta. – mjn

+0

Puoi elencare alcune di queste discrepanze che hai trovato? Non dubito affatto del tuo ritrovamento, ma aiuta ad avere qualcosa di concreto da analizzare. – polygenelubricants

risposta

11

Per Codice128 non esiste un'unica risposta corretta. Se usi Code128-A puoi ottenere un risultato diverso da Code128-C. Per risultato intendo come appare. Prendi "803150" come esempio. In Code128-A avrete bisogno di 6 caratteri (+ start, checksum, stop) per rappresentare questo numero. Code128-C consiste solo di numeri, quindi è possibile comprimere due cifre in un carattere. Quindi avrai bisogno solo di 3 caratteri (+ start, checksum, stop) per rappresentare lo stesso numero. I codici a barre appariranno diversi (A è più lungo in questo caso), ma se li scannerai entrambi daranno il numero corretto.

Inoltre, Code128 non deve essere solo A, B o C. È possibile combinare i diversi sottoinsiemi. Questo è comune per casi come "US123457890", dove Code128-A o B viene utilizzato su "US" e Code128-C viene utilizzato sulle cifre rimanenti. A volte ci si riferisce a Code-128 Auto o solo a Code-128. Il risultato è un codice a barre "compresso" in termini di larghezza. Potresti rappresentare gli stessi dati con A/B ma di nuovo ti darebbe un codice a barre più lungo.

prendere due generatori online:

vi consiglio il primo, in cui è possibile scegliere tra Auto/A/B/C. Ecco un'immagine esempio illustra le differenze:

alt text http://i41.tinypic.com/17bwh3.gif

In IDAutomation, Automatico è predefinito, mentre A è predefinito su barre-Inc. Entrambi sono corretti, devi solo stare attento a quale sottoinsieme hai selezionato quando confronti l'output. Raccomando anche un lettore di codici a barre da utilizzare in fase di sviluppo per testare l'output. Inoltre, vedere this page per una comparazione dei diversi sottoinsiemi con valori ASCII. Trovo anche utile grandzebu.net, che ha anche un font Code128 gratuito.

Sembra che la libreria Delphi utilizzi sempre Code128-C, poiché è possibile rappresentare solo numeri in questo sottoinsieme.

+0

IDAutomation e Barcodesinc mostrano risultati diversi: ad esempio, Barcodesinc non accetta una virgola in Code128, mentre IDAutomation lo fa. http://en.wikipedia.org/wiki/Code_128 dice che una virgola è supportata in Code128. – mjn

+0

Vero, sembra un bug su BarcodesInc. –

0

Perché non basta scansionarli e vedere cosa ritorna?

+0

Aggiunge solo più "variabili": gli scanner possono avere configurazioni (errate) diverse, come aggiungere/rimuovere automaticamente i caratteri iniziali/finali. – mjn

Problemi correlati