CODE 39 es el código de barras desarrollado por Intermec Corporation en 1975. En el código de barras se pueden incluir hasta 43 caracteres, incluidos números, letras y algunos símbolos: 0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ -. $ / +%. Dado que las cartas pueden manipularse, CODE 39 es indispensable en los campos industriales y se utiliza en industrias como la automotriz y la electrónica. Por ejemplo, en Alemania se utiliza para productos farmacéuticos, pero se utiliza principalmente en almacenamiento. En los EE. UU., El código 39 se estandarizó como ANSI MH 10.8 M-1983 y MIL-STD-1189. Esta norma ha sido cancelada más tarde y reemplazada por ANSI / AIM BC1 / 1995.
CODE 39 se llama así por su patrón de barras y espacios, con 3 de 9 barras y espacios amplios. La composición básica es la siguiente:
-
Una letra (carácter) está representada por 9 barras y espacios.
-
Se adjuntan asteriscos (*) al principio y al final del código de barras. (carácter de inicio / parada)
-
El espacio entre caracteres se denomina "espacio entre caracteres". Generalmente, el ancho del espacio es tan ancho como el ancho de la barra estrecha. (Se establece que el ancho máximo es de 3 a 5,3 veces más ancho que el de la barra estrecha).
Brecha entre personajes
Esta tabla describe la especificación del Código 39. El valor numérico asignado a cada carácter (excepto inicio / parada) se utiliza en el algoritmo de suma de comprobación que se describe a continuación.
El código 39 se usa a veces con un dígito de control opcional módulo 43, el código con dígito de control se conoce como Código 39 mod 43.
Así es como se hace el cálculo de la suma de comprobación:
1. Tome el valor (0 a 42) de cada carácter en el código de barras, excluidos los códigos de inicio y parada.
2. Sume los valores.
3. Divida el resultado por 43.
4. El resto es el valor del carácter de suma de verificación que se agregará.
Code 39 Extended es una versión extendida de Code 39 que admite el juego de caracteres ASCII. Puede codificar 128 caracteres: 0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ! # $% & '() * +, -. /:; <=>? @ [\] ^ _ `{|} Abcdefg hijklmnopqrs tuvwxyz, que incluye 26 letras mayúsculas ( AZ), 26 letras minúsculas (az) y caracteres especiales con un espacio.
Es importante tener en cuenta que el código de barras Extended Code 39 es aproximadamente dos veces más largo que un código de barras normal Code 39. De acuerdo con ISO 646, estos caracteres se muestran combinando dos caracteres de símbolo, el primero consta de uno de los cuatro caracteres $ +% / y va seguido de una de las 26 letras. Si el decodificador está programado con el conjunto completo de caracteres ASCII, solo se transfiere el equivalente ASCII y no la combinación de caracteres del símbolo.
Code 39 Extended también se puede utilizar con una suma de comprobación opcional módulo 43, y el código con el dígito de comprobación se parece a “CODE 39 EXTENDED mod 43”.
Comparación lado a lado de CODE 39 y CODE 39 Extended
Comparemos las mismas frases en diferentes códigos de barras. En ambos casos, no vemos diferencias en la primera columna. Pero, ¿por qué no hay diferencia? Esto se debe a que los caracteres 0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ -. $ / +% en ambos códigos de barras se codifican de la misma manera, pero si reemplaza las letras mayúsculas por minúsculas, aparecen cambios.
Una vez más, en CODE 39 Extended, los caracteres se muestran combinando dos caracteres de símbolo, el primero consta de uno de los cuatro caracteres $ +% / y va seguido de una de las 26 letras.
Creación de códigos de barras en el diseñador visual
FastReport VCL le permite utilizar los dos tipos de códigos de barras descritos anteriormente en sus informes. Veamos cómo trabajar con ellos.
En el diseñador de FastReport VCL, agregue el componente obCatBarcode al informe y seleccione el tipo de código de barras de la lista:
A continuación, vaya al editor de códigos de barras:
Código: área para el valor numérico del código de barras;
Tipo de barra: el tipo de código de barras se puede cambiar inmediatamente en el editor sin agregar un nuevo componente al informe;
Calc CheckSum - suma de comprobación. Todos los códigos de barras lineales tienen esta propiedad. ¿Recuerda "perder la lectura"? ¡Debemos combatirlo de alguna manera! Esta propiedad determina si la suma de comprobación debe calcularse automáticamente. Si está deshabilitado, la suma de comprobación debe estar presente en el texto del objeto;
Zoom: establece la escala del código de barras y se usa solo junto con la propiedad "Tamaño automático";
Texto: habilita / deshabilita la visualización de texto debajo del código de barras;
Rotación: le permite establecer la rotación del objeto en uno de los ángulos fijos: 0, 90, 180, 270 grados.
Haga clic en el icono F (x) y acceda al editor de expresiones grandes.
Puede encontrar más detalles por su cuenta en el diseñador de FastReport VCL o en la documentación. enlace 1 y enlace 2
Vaya a las propiedades del componente obCatBarcode.
El contenido del campo Código se transferirá al campo Expresión. Si el campo Expresión está vacío, se muestra el texto del campo Texto.
En resumen, el texto es texto estático y la expresión contiene la expresión calculada, incluido el valor del origen de datos.
Creación de un código de barras a partir del código Delphi / Lazarus
CODE 39 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
uses frxBarcod; procedure TForm1.Button1Click(Sender: TObject); var bc: TfrxBarcodeView; begin bc := TfrxBarcodeView(frxReport1.FindObject('BarCode1')); {Set the type of the barcode} bc.BarType := bcCode39; {Set the fixed barcode value} bc.Text := '123456'; {Set the calculated barcode value} //bc.Expression := '<YourDatasetName."FieldName1"> + <YourDatasetName."FieldName2">'; {Set whether it is necessary to calculate the checksum and add it to the end of the barcode} bc.CalcCheckSum := False; {Set the scale at which the barcode will be displayed} bc.Zoom := 2; {Set the angle of the barcode rotation. Can take the following values: 0, 90, 180, 270} bc.Rotation := 0; {Set whether to set the width of the barcode depending on its content.} {If set to False, Zoom will be set to keep the barcode width fixed} bc.AutoSize := True; {Set the barcode background color} bc.Color := clNone; {Set the barcode lines color} bc.ColorBar := clBlack; {Set whether to display the text at the bottom of the barcode} bc.ShowText := True; frxReport1.ShowReport(); end; |
Ahora podemos usar el código de barras del estándar CODE 39 en nuestras aplicaciones comerciales (codificar no solo caracteres numéricos, sino también alfabéticos), por ejemplo, para imprimir en etiquetas (por ejemplo, también en formato ZPL).