FAQ Creación de códigos de barras

¿Cómo generar GS1 Data Matrix?

Para crear un código de barras GS1 DataMatrix, por favor, siga los siguientes pasos:
  1. Seleccione la simbología Data Matrix
  2. En propiedades de Data Matrix seleccione el formato EAN / GS1. Esto agregará FNC1 en la primera posición de los datos lo que marcará el código como GS1/EAN.
  3. Active secuencias de escape
  4. Utilice la secuencia \F para codificar FNC1 como separador entre campos AI de longitud variable. Si el lector de código de barras lee el FNC1 devolverá GS (ASCII 29) en su lugar.
No codifique \F como el primer carácter (esto producirá un formato de datos incorrecto). En su lugar, utilice la propiedad formato de DataMatrix como se ha indicado arriba.

¿Cómo codificar FNC1 en un código de barras GS1?

Siga estos pasos para agregar el carácter funcional FNC1 a los datos de su código de barras:

  1. Introduzca los datos del código de barras „10222333\F15100701“ .
  2. Vaya a la pestaña "Configuración" y marque Secuencias de escape.
  3. Se insertará FNC1 y el identificador de aplicación (AI=15) se reconocerá automáticamente en la línea de texto de los datos.
  4. En Barcode Studio 11.5+ puede utilizar el asistente de Identificadores de Aplicación para GS1.

¿Qué es FNC1?

FNC1 se utiliza como carácter separador para los campos de longitud variable al usar identificadores estándar. Puede codificarse con \F. Ejemplo: El campo de datos para número de lotes puede llevar hasta 20 caracteres y necesita terminar con FNC1.

Tenga en cuenta:

  • Para codificar FNC1 debe activar Secuencias de escape.
  • No inserte FNC1 después del último campo.
  • Inserte FNC1 aunque utilice la longitud máxima del campo.

Ejemplo 1: FNC1 en TBarCode

En este ejemplo generaremos un código de barras GS1-128 con dos Identificadores de Aplicación. El número de lote (AI =10, longitud variable luego necesita usar FNC1) y la fecha de caducidad (AI=15).

' tipo de código de barras = GS1-128 (EAN/UCC 128)
TBarCode101.BarCode = eBC_GS1_128

' active Traducir secuencias de escape
TBarCode101.EscapeSequences = True

' agregue los datos a codificar
TBarCode101.Text = "10222333\F15100701"

Ejemplo 2: FNC1 en Barcode Studio

Siga estos pasos para agregar el carácter FNC1 a los datos de su código de barras:

  • Introduzca los datos del código de barras „10222333\F15100701“ .
  • Vaya a la pestaña "Configuración" y marque Secuencias de escape.
  • Se insertará FNC1 y el Identificador de Aplicación (AI=15) se reconocerá automáticamente en la línea de texto con los datos.
  • En Barcode Studio 11.5+ puede utilizar el asistente de Identificadores de Aplicación GS1.

¿Cómo codificar GS, RS y EOT en un código de barras 2D?

RS, GS y EOT son caracteres de control ASCII, utilizados para formatear datos en códigos de barras 2D (mire ISO/IEC 15434). Puesto que no son imprimibles, necesita utilizar secuencias de escape especiales para codificarlos en los datos del código de barras.

  • \x1d - GS, Separador de grupo, código ASCII 29 (Hex 1D)
  • \x1e - RS, Separador de registro, código ASCII 30 (Hex 1E)
  • \x04 - EOT, Fin de transmisión, código ASCII 04 (Hex 04)

Para convertir las secuencias hexadecimales (que empiezan por \x...) en su valor ASCII, tiene que activar Secuencias de escape (traducir secuencias de escape) en las propiedades del código de barras.

Ejemplo Formato 06: [)><RS>06<GS>SP66831000G<GS>SV9117327G<GS>S16S3.0G<RS><EOT>
Datos a codificar : [)>\x1e06\x1dSP66831000G\x1dSV9117327G\x1dS16S3.0G\x1e\x04
Nota: El encabezado y final del Formato 06 puede codificarse usando Macro 06 Format (mire las propiedades específicas del código de barras 2D ).
Si quiere comprobar los datos del código de barras con la app lector de códigos de barras de su móvil, tenga en cuenta que RS, GS y EOT se muestran a menudo en blanco. Para comprobar que hay exactamente en su código de barras 2D, puede utilizar BCTester Freeware

¿Cómo codificar datos binarios (códigos 2D)

Incluso si utiliza secuencias de escape para codificar los datos binarios el codificador utilizará Codepage Conversion (p.ejem: \x88 da lugar en Data Matrix a un valor diferente al deseado).

Solución:

  • Desactive conversión de códgio de página (utilice Modo de codificación LowByte)
  • Active "Forzar codificación binaria" si está disponible (ver Modo codificación PDF417, Data Matrix EnforceBinaryEncoding)
Relevante para DP Premium Address y otras aplicaciones donde codifique datos binarios en simbolos 2D (Data Matrix etc).

¿Cómo puedo calcular el dígito de control GTIN con GS1 Data Matrix?

Asumiendo que tiene varios identificadores de aplicación para codificar (01-GTIN + 17-fecha de caducidad + 10-lote...) y desea calcular el dígito de verificación del número GTIN con Tbarcode, proceda de la siguiente manera:

Format = 01#############^
Translate Esc Sequences = True
CheckDigit = EAN-14 (utiliza Mod-10 usado con GTIN)
DMFormat = EAN

Text = GTIN (13 dígitos, sin dígito de control) + 17 + fecha caducidad + 10 + número de lote

Nota: Codifique sin el encabezado GTIN 01 y sólo con los 13 primeros dígitos (sin dígito de verificación). El carácter "^" de la propiedad formato indica la posición, en la que el dígito de control calculado se insertará automáticamente. La cabecera 01 AI del GTIN también está en la cadena del formato.

Como resultado, los datos del código de barras serán los siguientes:

10 + GTIN (13 digits + 1 check digit) + 17 + Exp. Date + 10 + Batch Lot Number

¿Cómo codificar caracteres de control como TAB o ENTER en un código de barras?

Para agregar caracteres especiales a un código de barras, siga estos pasos por favor:

  1. Abra el programa para crear códigos de barras (como Barcode Studio) para codificar los caracteres de control usando, las llamadas, “secuencias de escape”.
  2. Primero introduzca los datos del código de barras.
  3. Para crear una secuencia de escape, tan solo introduzca la barra invertida seguida de una letra para seleccionar la función (p.ejem: \t para TAB o \n para ENTER).
  4. Para asegurar la correcta codificación de las secuencias de escape, por favor, marque secuencias de escape en "ajustes”.
  5. El código de barras se actualiza inmediatamente.
  6. Si "secuencias de escape" está seleccionado, los caracteres de control se decodificarán correctamente, al escanear el código de barras.
  7. Eso es todo.

¿Por qué usar caracteres de control en un código de barras?

Los códigos de barras con caracteres de control son útiles para confirmar automáticamente la entrada automática de campo de entrada o desplazarse al siguiente campo al usar un escáner wedge conectado al teclado para escanear códigos de barras. Los programa de códigos de barras de TEC-IT le permiten codificar marcadores para dichos caracteres de control usando las "secuencias de escape".

¿Qué son las "Secuencias de escape"?

Las secuencias de escape permiten representar los caracteres de control mediante la barra invertida y una letra que identifica la función. Por ejemplo, barra invertida seguida de t minuscula representa el TABULADOR, barra invertida seguida de n para ENTER.

¿Qué caracteres de control están soportados?

Nuestros programas de código de barras soportan un gran número de caracteres de control. Encontrará una lista de los caracteres de control soportados en la página 17 de nuestra Referencia de código de barras.

Para más información mire este vídeo:

Resumen

  • Las secuencias de escape consisten en una barra invertida (\) seguida de al menos una letra para seleccionar la función.
  • Para codificar caracteres de control (y asegurar la correcta interpretación al leer el código de barras) compruebe permitir que se procesen las “secuencias de escape”. El modo preciso dependerá del producto que esté utilizando.

¿Cómo hacer un código de barras gratis en línea?

En pocos pasos, usando el Generador de códigos de barras en línea de TEC-IT:

  • Paso 1: Abra Online Barcode Generator en barcode.tec-it.com.
  • Paso 2: Seleccione el tipo de código de barras en la parte izquierda.
  • Paso 3: Tras seleccionar el tipo de código de barras, introduzca los datos.
  • Paso 4: El código de barras aparecerá actualizado en la ventana de vista previa.
  • Paso 5: Si fuera necesario puede personalizar el código de barras.
  • Paso 6: Descargue el código de barras como imagen para su uso posterior.

Más información en el siguiente vídeo:


Este generador de códigos de barras en línea muestra las capacidades del software de código de barras de TEC-IT. Puede usar este servicio como parte de su aplicación o sitio web no comercial para crear códigos de barras dinámicamente con sus propios datos. Por favor, para un uso comercial contacte con nosotros.

How Can I Avoid Errors When Creating a Barcode?

Our barcode software products support you to create the perfect barcode by displaying error messages instead of the barcode preview image. The following three points show you common barcode creation errors:

Wrong Numbers of Characters

Some barcodes, such as EAN, ISBN or UPC, only encode a specific number of characters. The only way to avoid this error is to stick exactly to the appropriate barcode specification. You may also refer to our document Barcode Reference which provides a convenient overview of such requirements for most of the barcode types.

Wrong Check Digit

The use of non-standard check digits is usually not required. We recommend to go with the default and let our software calculate the check digit automatically. For example, you just need to enter 12 digits to create a correct EAN-13 code.

Unsupported Characters

Not all barcodes are able to encode all characters and some even require a specific data format. For example, UPC and EAN codes can only encode a fixed number of digits. If you need support of a wider character range, we recommend to use a Code 128 or a 2D symbology. There is an additional pitfall: When encoding special characters (like German umlauts) in a 2D code you need to use the correct character set or code-page settings. Using the UTF-8 encoding may be helpful.

Please note error messages which are displayed in the respective barcode software.

How Can I Create a VCard Barcode?

VCard is not a barcode type itself, it is a special file format, which can be used to store data in a bar code (e.g. into QR Code). A detailed description of the VCard format can be found here:
Wikipedia - VCard Specification

Just bring your data into the given format and you'll be able to read the barcode with your mobile phone and recognize the data as contact information.

Create VCard barcodes with Barcode Studio

With our Barcode Studio we offer an Assistant to create VCard barcodes the easy way.

How Do I Create a Barcode for My Product?

Barcodes for Retail Use

To generate a valid bar code for retail use, you have to register it at your local GS1 organization. Please follow these steps:

  1. Open the website https://www.gs1.org.
  2. Register your company to get a company prefix for your barcode number.
  3. After receiving a GS1 company prefix, you are able to assign a identification number for your product(s).
  4. Now you are ready to generate the required EAN-13 / UPC-A barcode using one of our barcode software tools.
  5. We recommend to test the generated barcode before using it on your product(s).

Your appropriate GS1 organization can provide you with specific information about getting GS1 company prefix or assigning numbers.
Further information on this topic, you will find here:

What Are the Correct Font Settings for EAN-13 or UPC-A?

EAN-13 / UPC-A can be printed in several sizes. The possible sizes can be found in the specification. The nominal module width is 0.330 mm (optimized for 300 dpi printers it would be 0.339 mm). The human readable font must be adapted to these sizes.

The specification says that a "clearly legible font shall be used" for the human-readable digits, and OCR-B (as defined in ISO 1073-2) with a height of 2.75 mm at nominal size is recommended. Because this font is referenced only as a convenient standard typeface, you can use Courier or Arial (Bold) if you don't have the OCR-B font available.

It is not part of the specification but you can use this kind of formula to get a useful font size (based upon the module width parameter).

FontSize [pt] = ModuleWidth [mm] / 0.339 * 10
  • EAN13 (module width X=0.339mm) = font size 10pt (optional: bold)
  • If module width X would be 0.5 mm = font size 14,7pt

The formula above can be used for other barcodes, too.

How to Create a Barcodes with OCR Font in Human Readable Text?

Create Barcodes with OCR Fonts

To use an OCR-A or an OCR-B font to generate UPC / EAN barcodes, you can also refer to the free of charge fonts created by Matthew Skalas. The font can be downloaded directly from here:

For more information on this topic, please read this article.

How to Use the Compressed Mode of Code 128?

Simply select Code128 as the bar code type. Make sure to clear the Format string. Code 128 auto compresses data by default (and subset switching is done automatically).

What Are Data Segments in GS1 DataBar / RSS Expanded?

GS1 DataBar Expanded (alias RSS Expanded) symbols are constructed as a sequence of triplets, each consisting of a finder pattern between two symbol characters. Such a triplet contains 2 data segments (symbol characters).

2 segments forming a "triplet" consist of 17+15+17 modules. The left and right guard pattern for the symbol consist each of 1 bar + 1 space.

Per segment/data character you can encode 12 bits. Each symbol is prefixed with a check character. So the smallest symbol, which uses at least 4 symbol characters (containing 1 check char) can encode 36 Bits.

Input data is processed with a character set mapping algorithm + error recognition. With a simple formula it would be hard to predict how many data segments are required for a given set of input characters.

TEC-IT software allows you to adjust the number of data segments per row in GS1 DataBar Expanded Stacked

How Can I Generate a Data Matrix in Accordance with MIL Std 130 N?

The Data Matrix symbol according to MIL Std 130 N is based on ISO/IEC 16022 Data Matrix ECC200, this is the same standard which is used by TEC-IT. The module width may be between 0.19 mm and 0.635 mm, and must be adjusted so that final symbol width does not exceed 25.4 mm.

For more details, see MIL Std 130 N specification (chapter 5.2.3.2).

Data Structure:

The structure of data depends on the label, whereas Application Identifier, Data Identifier or TEI can be selected (see specification 5.2.4 Syntax).

  • If you choose Application Identifiers, you should select Format Indicator 05 as shown below:
    Library/DLL:      BCSet_DM_Format (pBarCode, eDMPr_Macro05)
    TBarCode/X:     --DMformat=3
    

    Result: In the data stream, a header of "[)>" + RS + "05" + GS and a trailer of RS + EOT will be inserted. FNC1 is for field separation with variable-length AIs (see specification 5.2.1.4).

  • If you choose Data Identifiers, you should use Format Indicator 06 as shown below.
    Library/DLL:      BCSet_DM_Format (pBarCode, eDMPr_Macro06)
    TBarCode/X:     --DMformat=4
    

    Result: In the data stream, a header of "[)>" + RS + "06" + GS and a trailer of RS + EOT will be inserted.

    User Data Example:

    17V12345\x1d1P1234\x1dS12345

    Explanation:

    17V ... DI for CAGE ID
    1P   ... DI for Part Number
    S     ... DI for Serial Number
    \x1d ... GS
    Translate Escape Sequences must be activated!
  • If you choose TEI, there is a separate Format Indicator 12. You must manually implement the Format 12 (header, trailer) on the user data. There is no macro (format) available in the software for this.

How Can I Generate a PPN Code or a NTIN Code?

The data structures of the IFA PPN und GS1 NTIN Code are encoded with a Data Matrix ECC200 symbology (ISO/IEC 16022). The IFA version is using Data Matrix Macro 06 mode, while the GS1 version is based upon Data Matrix with FNC1. A specific range for the cell size and module width has been defined as well.

More information: Encoding PPN and NTIN Numbers (German)

DFI PPN Code

Set Data Matrix format to Macro-06.

Library/DLL:      BCSet_DM_Format (pBarCode, eDMPr_Macro06)
TBarCode/X:     --DMformat=4

This will add a header of "[)>" + RS + "06" + GS and a trailer of RS + EOT to the encoded data.

User Data (Example):

9N111234567842\x1d1T1A234B5\x1dD151231\x1dS1234567890123456

Explanation:

9N ..... PPN
1T   ... Batch (LOT)
D     ... Expiry date
S     ... Serial Number
\x1d ... GS (group separator)

Translate Escape Sequences must be activated!

Details: PPN Code Spezifikation (German)

GS1 NTIN Code

Set the Data Matrix format to EAN or GS1. This adds an FNC1 on the first code word position. Then use Application Identifiers as shown in the GS1 specification.

Details: NTIN Code Spezifikation (German) NTIN Code Specification (English)

How Can I Generate a Data Matrix PPN Code or NTIN Code?

The data structures of the IFA PPN und GS1 NTIN Code are encoded with a Data Matrix ECC200 symbology (ISO/IEC 16022). The IFA version is using Data Matrix Macro 06 mode, while the GS1 version is based upon Data Matrix with FNC1. A specific range for the cell size and module width has been defined as well.

More information: Encoding PPN and NTIN Numbers (German)

DFI PPN Code

Select Data Matrix and set the Data Matrix code format to Macro-06 as shown below. Alternatively you can select PPN as separate symbology (available in newer program versions).

Library/DLL:      BCSet_DM_Format (pBarCode, eDMPr_Macro06)
TBarCode/X:     --DMformat=4

This will add a header of "[)>" + RS + "06" + GS and a trailer of RS + EOT to the encoded data.

User Data (Example):

9N111234567842\x1d1T1A234B5\x1dD151231\x1dS1234567890123456

Explanation:

9N ..... PPN
1T   ... Batch (LOT)
D     ... Expiry date
S     ... Serial Number
\x1d ... GS (group separator)

Translate Escape Sequences must be activated!

More information about IFA PPN:

GS1 NTIN Code

Select Data Matrix and set the Data Matrix code format to GS1 or EAN. Alternatively - if supported - you can you can select NTIN as separate 2D bar code symbology. This adds an FNC1 on the first code word position. Then use Application Identifiers for encoding the data fields as shown in the GS1 specification.

More information about GS1 NTIN:

How Do I Create a GS1 Data Matrix According to EU FMD (Serialization)?

For prescription medicine packaging, there are new imitation protection guidelines, which is called EU Falsified Medicine Directive (EU FMD, 2011/62/EU). According to delegated regulation 2016/161/EU the products are identified by a 2D barcode and contain a unique product number as well as other security features.

Encoded Product Features

The following product features are encoded in the GS1 Data Matrix:

  • AI (01) - GTIN or NTIN,
  • AI (17) - Expiration date (YYMMDD)
  • AI (10) - Batch number (up to 20 characters, alphanumeric)
  • AI (21) - Serial number (up to 20 characters, alphanumeric)
  • AI (710 to 714) - NHRN (national refund number) if required by the EU member state

The data string for the Data Matrix consists of:

01 + NTIN (14 digits) + 17 + Expiration Date (6 digits) + 10  + lot number + \F + 21 + serial number

Example (without NHRN):

0104150103893583171714112010KMB11205201\F21CEB630078700
The data is entered as a continuous string (must also be imported later in the same way).

Barcode Settings

The following barcode parameters have to be configured (see pictures):

  • Barcode type = Data Matrix
  • Data Matrix code format = GS1/UCC/EAN
  • Escape sequences = On
  • Module width (dot size): 0.508 mm

You can find a preconfigured Barcode Studio BC file here.

Related Links:

What is a UDI Barcode?

Unique Device Identification (UDI) is a worldwide system to uniform product labelling for medical goods. UDI serves as a key to a UDI database (Unique Device Identification Database; UDID), which contains a number of product information. The products and packaging receive a UDI data carrier which contains the identification number. For the UDI carrier the barcode types Code 128 and Data Matrix (ISO/IEC 16022) are used.

The following agencies are accredited by the FDA: GS1-System, Health-Industry-Bar-Code (HIBC) and ISBT. Depending on the issuing agency, there are different data structures (see ISO/IEC 15418). The structure of GS1 uses Application Identifiers. The others use HIBC-LIC (HIBCC) and ISBT 128-PPIC (ICCBBA).

EU UDI Requirements

All medical goods and in-vitro diagnostics must be clearly identifiable worldwide.

UDI Device Identifier (UDI-DI)

The UDI-DI is a unique numeric or alphanumeric code which identifies the article (static data). Within the GS1 system, the GTIN (Global Trade Item Number) is used for the UDI-DI.

UDI Production Identifier (UDI-PI)

The UDI-PI enables traceability with data such as batch, expiration date, serial number (dynamic data). Within the GS1 system, the corresponding GS1 Application Identifiers are used.

Basic UDI-DI

The basic UDI-DI is the primary identifier of a product type, which is assigned at the level of the usage unit of the product. It is the most important classification characteristic for data records in the UDI database and is shown in the EU declarations of conformity. The Global Model Number (GMN) can be used in the GS1 system to implement the basic UDI-DI.

How Can I Generate a UID Code?

UID Codes are used as a permanent marking method in order to give equipment a unique ID. UID Codes utilize the Data Matrix ECC200 bar code symbology - this standard is supported by TEC-IT.

Unique Identification Marking (UID marking, Item Unique Identification or IUID) is a part of the compliance process mandated by the United States Department of Defense. The Unique Identification Program is a global asset tracking system for hard products. UID tracking ensures asset location and operational quality data integrity for the life of the tracked asset.

Beside selecting Data Matrix as bar code type the encoded data structure has to comply with the rules outlined in the „MIL Std 130“ specification (see also this FAQ).

More details:

Creating the world wide unique UID number can be achieved by the following methodologies (constructs) and approved equivalents:

  • UID Construct 1, composed of Issuing Agency Code, an Enterprise Identifier, and a Serial Number unique within the Enterprise
  • UID Construct 2, composed of Issuing Agency Code, an Enterprise Identifier, a Part Number and a Serial Number (unique within the Part Number)
  • The following IUID Equivalents are also approved: Vehicle Identification Number (VIN), Global Returnable Asset Identifier (GRAI), Global Individual Asset Identifier (GIAI), Electronic Serial Number (ESN, typically assigned to cell phones)

Accepted Issuing Agencies:

  • DoD and NATO
  • D-U-N-S (Dun & Bradstreet)
  • GS1 (formerly EAN/UCC)

After getting a world wide unique enterprise ID from one of the listed Issuing Agencies, suppliers can number their products with UID Construct 2. Often an existing serial number management can be re-used for that process. Suppliers in the US can use the CAGE code as enterprise ID. In other countries the NATO or GS1 can issue enterprise IDs. If a company already owns a DUNS number it can be used as well.

How Can I Encode Char Set ISO-8859-15 into PDF417?

TBarCode V9 and Barcode Studio V9 allows you to specify the target code page for the data to be encoded.

tbarcode.CodePage = eCodePage_Custom
tbarcode.CodePageCustom = 28605   ' Latin-9 on Windows

Alternatively you can use Windows API character set conversion functions.

The PDF417 "GLI" code is an indicator for the reader software, which character set is used for the forthcoming data string. The AIM ECI table contains ECI 000017 for ISO/IEC 8859-15 Latin alphabet No. 9. ECI is the successor of GLI.

The GLI or ECI indicator does not automatically convert the data to the required character set! Consider that GLI or ECI code words are not always supported by the reading software.

The GLI or ECI indicator can be insert by escape sequences into the data stream:

PDF417: \Gnnnnnn (n...6 digits specifying the GLI)

Encode: \G000017 + bar code data
If you use escape sequences, make sure that translation of escape sequences has been enabled in the barcode generator.

What is Aztec Rune Mode?

The Aztec Rune Mode can encode one single Byte of information. If it is enabled, the barcode data should contain a string, which consists of a number range between 0 and 255. This will be converted to a Byte value in the encoder sotware.

After enabling Rune Mode in our bar code software, the small 11x11 Rune Symbol (eAztecSz_Rune) is selected automatically (no extra API call required).

What is Industry Format in a 2D Code?

All newer 2D symbologies support the "Industry Format" - but what is it? The industry format works as follows:

  • An application defines an industry format specifier (e.g. 01) and standardizes this for an application area.
  • In the barcode generator you switch to Industry Format and indicate the specifier (2 digits or 1 alphanumeric character).
  • The encoder brings the format specifier into an internal data format and inserts it into the bar code header.
  • The decoder (barcode reader) recognizes the format specifier and outputs a specific prefix, including the format, in front of the utilizable bar code data. The scanner may need further configuration for that.
  • By means of the prefix the application identifies the actual bar code as industry format bar code and reacts appropriately. Other bar codes without that prefix can be ignored by the application.

Industry format may be used in closed circuits where the purpose of the data package should be clearly defined and other data formats locked out. Typically the format specifier is given in a label standard for a specific application.

How Can I Change the Size of a MaxiCode Symbol?

The USPS MaxiCode symbol has a predefined constant size, therefore the module width has been set to a fixed value in the barcode generator. With that behavior the bar code will not adapt to the bounding rectangle even if size mode eSizeMode_FitToBoundingRect has been set.

If you need to change the size of a MaxiCode symbol you need to change the module width (please see API or UI description on how to change the module width). More information about MaxiCode can be found in our Barcode Reference.

What's Important When I Create a HIBC Barcode?

The Asterisk '*' within the HIBC Standard

Depending on the bar code type the * character is used specifically. Code 39 utilizes an asterisk character as a start and stop indicator - in this case TBarCode generates the asterisk character automatically. With Code-128 the asterisk character is not encoded into the bar code symbol but displayed in the text below (according to ANSI/HIBC 2.2 - 2006).
Important: The barcode scanner does not transmit the start and stop character, only the raw data.

That means

  • According to the HIBC standard the raw data does not contain any * character.
  • TBarCode optionally allows to enter the barcode data with '*' start and stop character when using a code 39 symbology. But this option is not available for the Code 128 symbology.
  • The * character is always displayed in the text line below no matter if the character is encoded or not.

Once you choose a HIBC barcode symbology the TBarCode software complies with these guidelines.

Check Digit

The HIBC format requires a check digit. If a HIBC barcode symbology was chosen, TBarCode calculates and attaches it automatically. Normally you can enter the data WITHOUT the check digit. If the data already contains the check digit just disable the check digit in the TBarCode options. Otherwise two check digits are attached and you will get a faulty barcode!

Data Format

The HIBC standard distinguishes between the LIC and the PAS data format. The barcode data is validated according to the HIBC type. If needed an error message will be displayed.

Advanced Links

Adobe Illustrator Reports a Missing Font When Opening a Created PDF Document

Problem: You can't open a PDF document, created with Barcode Studio, in Adobe Illustrator (or a similar graphic application). You receive the following error message:

Adobe Illustrator Error Message
The document can be opened but the system default font is used!

Solution: Change the used font engine of Barcode Studio to generate PDF documents correctly. There are two possibilities to do this:
  • Add the following command line arguments when starting Barcode Studio on Windows:
    bcstudio.exe -platform windows:fontengine=freetype 
  • Add the following command line arguments when starting Barcode Studio on macOS:
    bcstudio.exe -platform cocoa:fontengine=freetype 
  • Put the configuration file qt.conf into the install directory containing bcstudio.exe.

How is the Bar Width Reduction Applied to a 2D Matrix Code?

In Standard Mode, the bar width reduction is applied to each side at 50% of the desired total reduction. If you want to apply the reduction only to the bottom and right side of the matrix dot, use the Legacy Options as shown below.

Standard Mode (Default)

Default Mode
  • 4 Pixel / module
  • Bar width reduction = 50% → 2 Pixel
  • Options: No legacy option set
  • We reduce 1 Pixel at each side of a dot or a connected line of dots.
Note: If you adjust a BWR of 25% at 4 Pixel module width (⇒ 1 Pixel reduction), the module would be “shaved” ½ Pixel at each side. Because you can draw only full Pixels, this combination cannot be drawn correctly.

Legacy Mode 1

BWR Legacy Mode 1
  • 3 Pixel / module
  • Bar width reduction = 33% → 1 Pixel
  • Options: DRAW_BarWidthReduction_Legacy=1
  • We reduce 1 Pixel at right and bottom of each dot, also of connected dots.

Legacy Mode 2

BWR Legacy Mode 2
  • 4 Pixel / module
  • Bar width reduction = 25% → 1 Pixel
  • Options: DRAW_BarWidthReduction_Legacy=2
  • Connected dots are not reduced.
  • We reduce 1 Pixel at right and bottom of each dot or connected line of dots.