2010-03-20 18 views
13

Esta pregunta no es acerca de la 'mejor' recomendación de la biblioteca barcode, utilizamos varios productos en diferentes plataformas, y necesitamos una forma simple de verificar si un determinado código de barras es correcto (de acuerdo con sus especificaciones).¿Dónde puedo encontrar "códigos de barras de referencia" para verificar la salida de la biblioteca de códigos de barras?

Hemos encontrado casos en que un código de barras se procesa de manera diferente por diferentes bibliotecas de códigos de barras y free online barcode generators en Internet. Por ejemplo, una nueva versión de una biblioteca de informes Delphi genera caracteres no numéricos en Code128 como '0' o simplemente los omite en el área de texto. Antes de hacer la migración, queremos verificar si estos cambios son causados ​​por una implementación defectuosa en la nueva biblioteca, por lo que podemos reportar esto como un error para el autor.

Principalmente necesitamos Code128 y UCC/EAN-128 con subcódigos A/B/C.

recursos en línea que nos registramos hasta el momento son:

Muestran resultados diferentes también, por ejemplo e en apoyo de caracteres como signos de coma o más, al menos en el texto legible para humanos.

+0

Existen varias herramientas que generan códigos de barras para usted; no son suficientes? – Joey

+1

Hemos encontrado que generan diferentes imágenes de código de barras para el mismo valor de entrada y el mismo tipo de código de barras, y no sabemos cuál es el correcto. – mjn

+0

¿Puede enumerar algunas de estas discrepancias que ha encontrado? No dudo en absoluto de su hallazgo, pero ayuda tener algo concreto para analizar. – polygenelubricants

Respuesta

11

Para Code128 no hay una sola respuesta correcta. Si usa Code128-A puede obtener un resultado diferente al Code128-C. Por resultado, me refiero a cómo se ve. Tome "803150" como ejemplo. En Code128-A necesitarás 6 caracteres (+ inicio, suma de comprobación, parada) para representar este número. Code128-C solo consiste en números, por lo que puede comprimir dos dígitos en un carácter. Por lo tanto, solo necesitará 3 caracteres (+ inicio, suma de comprobación, parada) para representar el mismo número. Los códigos de barras se verán diferentes (A es más largo en este caso), pero si los escanea, ambos darán el número correcto.

Además, Code128 no necesita ser solo A, B o C. En realidad, puede combinar los diferentes subconjuntos. Esto es común para casos como "US123457890", donde Code128-A o B se usa en "US" y Code128-C se usa en los dígitos restantes. Esto a veces se conoce como Code-128 Auto o simplemente Code-128. El resultado es un código de barras "comprimido" en términos de ancho. Podría representar los mismos datos con A/B, pero nuevamente eso le daría un código de barras más largo.

tomar dos generadores en línea:

recomiendo la primera, donde se puede seleccionar entre Auto/A/B/C. Aquí está una imagen de ejemplo que ilustra las diferencias:

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

En IDAutomation, Auto es defecto, mientras que A es por defecto en los códigos de barras-Inc. Ambos son correctos, solo debe tener cuidado con el subconjunto que ha seleccionado al comparar la salida. También recomiendo un lector de código de barras para usar en desarrollo para probar la salida. También, vea this page para una comparación de los diferentes subconjuntos con valores ASCII. También me parece útil grandzebu.net, que también tiene una fuente gratuita Code128 que puede usar.

Parece que su biblioteca Delphi siempre usa Code128-C, ya que solo es posible representar números en este subconjunto.

+0

IDAutomation y Barcodesinc muestran resultados diferentes: por ejemplo, Barcodesinc no acepta una coma en Code128, mientras que IDAutomation sí lo hace. http://en.wikipedia.org/wiki/Code_128 dice que una coma es compatible con Code128. – mjn

+0

Cierto, parece un error en BarcodesInc. –

0

¿Por qué no simplemente escanearlos y ver qué viene?

+0

Esto solo agrega más 'variables': los escáneres pueden tener diferentes configuraciones (mis), como agregar/eliminar automáticamente caracteres iniciales/finales. – mjn

Cuestiones relacionadas