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:

How to Generate Barcodes to Sell Products on Amazon?

Each product uploaded for sale on Amazon requires its own ASIN (Amazon Standard Identification Number) code which is obtained from Amazon and is generated based on your product's GS1 number: UPC, EAN or ISBN. If you already have ASIN codes for your product, you can generate barcodes with our barcode generation software.

If you still don't have ASIN codes to create product barcodes for Amazon, please follow these steps:

  1. Contact your local GS1 organization to apply for valid UPC, EAN or ISBN numbers (https://www.gs1.org).
  2. Having received GS1 numbers, forward them to Amazon to get ASINs for your products.
  3. With a valid ASIN number, you are ready to generate the required Amazon product ID barcode (e.g. UPC, EAN, ISBN...) using one of our barcode software products.
  4. We recommend to test the barcode before using it.

For detailed information on how to get ASIN numbers, please contact Amazon directly. Further information can be found here:

How Can I Generate a GS1 DataMatrix?

To create a GS1 DataMatrix barcode please follow these steps:
  1. Adjust Data Matrix as symbology
  2. Set the Data Matrix format property to GS1/EAN. This adds an FNC1 on the first code word position which marks the barcode as GS1/EAN type.
  3. Enable Escape Sequences
  4. Use the sequence \F to encode an FNC1 as separator between variable length AI fields. If the barcode reader reads such a FNC1 it will return GS (ASCII 29) instead.
Don't encode \F as first data character by yourself (this could lead to incorrect data). Use the DM format property instead (as shown above).

How to Encode FNC1 in a GS1 Barcode?

To add the functional character FNC1 to your barcode data follow these steps:

  1. Enter the sequence \F to your bar code data where you need the FNC1.
  2. Make sure Escape Sequences are enabled in the barcode settings.
  3. FNC1 will be insert and the Application Identifier is recognized automatically in the HRT.

What's FNC1?

FNC1 is used as separator character for variable length data fields in the GS1 Application Identifier standard. It can be encoded with \F. Sample: The data field for the batch / lot number varies in length (up to 20 characters) and needs a termination (FNC1).

Please consider:

  • To encode FNC1 Escape-Sequences must be enabled.
  • Don't insert FNC1 after the last data field.
  • Insert FNC1 even if the maximum field length is used.

Example 1: FNC1 in TBarCode

In this example we generate a GS1-128 barcode with 2 Application Identifier. The batch or lot number (AI =10, variable length so it needs FNC1) and the best before date (AI=15).

' set the barcode type = GS1-128 (EAN/UCC 128)
TBarCode11.BarCode = eBC_GS1_128

' enable Translate Escape Sequences
TBarCode11.EscapeSequences = True

' set the data to be encoded
TBarCode11.Text = "10222333\F15100701"

Example 2: FNC1 in Barcode Studio

To add the functional character FNC1 to your barcode data follow these steps:

  • Enter the barcode data „10222333\F15100701“ .
  • Switch to the tab "Settings" and check Escape Sequences.
  • FNC1 will be insert and the Application Identifier (AI=15) is recognized automatically in the HRT.
  • In Barcode Studio 11.5+ you can use the new Assistant for GS1 Application Identifiers.

How to Encode GS, RS and EOT into a 2D Barcode?

RS, GS and EOT are ASCII control characters, which are used to format data in a 2D bar code (see ISO/IEC 15434). Because they are unprintable you need to use special escape sequences to encode them in the bar code data.

  • \x1d - GS, Group Separator, ASCII Code 29 (Hex 1D)
  • \x1e - RS, Record Separator, ASCII Code 30 (Hex 1E)
  • \x04 - EOT, End of Transmission, ASCII Code 04 (Hex 04)

In order to convert the hexadecimal sequences (starting with \x...) into their ASCII value, you have to enable Escape-Sequences (Translate Escape Sequences) in the bar code properties.

Format 06 Example: [)><RS>06<GS>SP66831000G<GS>SV9117327G<GS>S16S3.0G<RS><EOT>
Data to encode   : [)>\x1e06\x1dSP66831000G\x1dSV9117327G\x1dS16S3.0G\x1e\x04
Note: The header and trailer of Format 06 can be encoded using Macro 06 Format (see 2D specific bar code properties).
If you want to verify the bar code data with your mobile bar code reader app, please consider that RS, GS and EOT are often just displayed as a blank. To verify what's exactly in a 2D bar code, you can use the BCTester Freeware

How to Encode Binary Data (2D Codes)

Even if you use an escape sequence for binary data the encoder will use code page conversion (example: \x88 leads to a different value in Data Matrix as desired).

Solution:

  • Switch off code page conversion (use encoding mode LowByte)
  • Force binary encoding mode if available (see PDF417 encoding mode, Data Matrix EnforceBinaryEncoding)
Relevant for DP Premium Address and other applications where you encode binary data in a 2D symbol (Data Matrix etc).

How Can I Calculate the GTIN Check Digit with GS1 DataMatrix?

Assuming you have several Application Identifiers to encode (01-GTIN + 17-Expiration Date + 10-Batch Lot...) and you want to calculate the check digit of the GTIN number with TBarCode, proceed as follows:

Set Property Format = 01#############^
Set Property Translate Esc Sequences = True
Set Property CheckDigit = EAN-14 (complies with Mod-10 used with GTIN)
Set Property DMFormat = EAN

Set Property Text = GTIN (13 digits, no check digit) + 17 + Exp. Date + 10 + Batch Lot Number

Note: Encode the leading GTIN number without 01 and with only the first 13 digits (no check digit).The "^" character in the format property controls the position, where the calculated check digit will be automatically inserted. The leading 01 AI for the GTIN is also contained in the format string.

The resulting barcode data will be as follows:

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

How to Encode Control Characters like TAB or ENTER in a Barcode?

To add special characters to a barcode, please follow these steps:

  1. Open the barcode creation software (like Barcode Studio) to encode placeholders for control characters, so-called “escape sequences”.
  2. First, enter the barcode data.
  3. To create an escape sequence, just enter a backslash followed by one letter to select the function (for example: \t for TAB or \n for ENTER).
  4. To ensure correct encoding of the control sequences, please check escape sequences under “settings”.
  5. The barcode changes immediately!
  6. If "escape sequences" is checked, the control characters will be decoded correctly, when the barcode is scanned.
  7. Finished.

Why Should I Embed Control Characters in a Barcode?

Barcodes with embedded control characters are useful to automatically confirm input or to tab into next edit field when being scanned with a keyboard wedge barcode scanner. TEC-IT's barcode software offers the possibility to encode placeholders for such control characters utilizing so called "escape sequences".

What Are "Escape Sequences"?

Escape sequences are placeholders for control characters. An escape sequence is created by a backslash followed by at least one letter to select the function. For example, backslash followed by a lower-case t stands for TAB, backslash followed by a lower-case n for ENTER.

Which Control Characters Are Supported?

Our barcode software products support a large number of control characters. You will find a complete list of supported control characters on page 17 in our Barcode Reference.

Watch the video to learn more!

Summary

  • Escape sequences consist of one backslash (\) followed by at least one letter to select the function.
  • To encode control characters (and ensure the correct interpretation when being scanned) make sure to enable processing of “Escape Sequences”. The exact way on how to do this depends on the product you are using.

How to Make a Barcode - Free and Online?

Few steps to use TEC-IT's Online Barcode Generator:

  • Step 1: Open the Online Barcode Generator on barcode.tec-it.com.
  • Step 2: Select the barcode type on the left side.
  • Step 3: After choosing the barcode type, enter the data.
  • Step 4: The barcode will immediately appear in the preview window.
  • Step 5: If required you may customize your barcode.
  • Step 6: Download the barcode image for further use.

Watch the video to learn more!


This online barcode generator demonstrates the capabilities of TEC-IT's barcode generator software. You may use this service as part of your non-commercial web-application or web-site to create dynamic barcodes with your own data. Please contact us for commercial use!

What Is the Difference Between a “Normal” QR Code and a “Mobile” QR Code?

The barcode type is the same, there are some specific settings for mobile apps (but also depends on the mobile app itself):

  • Normal QR Code: Error correction level = Medium; Codepage = Standard (Latin -1).
  • Mobile QR Code: Error correction level = Low (can use more data in a smaller space); Codepage = UTF-8 (supports special characters and also Asian characters).

Main characteristic: the structure of the encoded data is specific to the mobile application. To see the differences in the data format of each application (like URL, vCard, Email...) you can visit our free online QR Code Generator and create the barcode data format you need.

How Can I Create a vCard Barcode?

vCard is a special file format, which can be used to store personal data in a bar code (e.g. into QR Code®). Note that vCard is not a bar code type, it denotes only the data structure. A detailed description of the vCard format can be found on 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

In our vCard Video Tutorial we show you how to create vCard bar codes the easy way.

Special Characters (Umlauts)

For special characters you need to set the code page to UTF-8 and use vCard format 3.0 (vCard 2.1 also supports special characters, but not all apps evaluate this older format correctly).

Here is a sample vCard string:

BEGIN:VCARD
VERSION:3.0
N:Mustermann;Erika;;Dr.;
FN:Dr. Erika Mustermann
ORG:Wikimedia
ROLE:Kommunikation
TITLE:Redaktion  & Gestaltung
PHOTO;JPEG:http://commons.wikimedia.org/wiki/File:Erika_Mustermann_2010.jpg
TEL;WORK;VOICE:(0221) 9999123
TEL;HOME;VOICE:(0221) 1234567
ADR;HOME:;;Heidestrasse 17;Koeln;;51147;Deutschland
EMAIL;PREF;INTERNET:erika@mustermann.de
REV:20140301T221110Z
END:VCARD

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 Enable the 2D Composite Component for EAN-13?

First select the EAN-13 symbology in the barcode library.

Then add a 2D composite component with this function:

  • TBarCode .NET:
    barcodeControl1.Barcode.CompositeSymbol.CCType == CompositeComponentTypes.Auto;
  • TBarCode DLL:
    BCSet2DCompositeComponent (pBarcode, eCC_Auto);
  • TBarCode OCX:
    TBarCode111.CompositeComponent = eCC_Auto

The barcode data must consist of

<12 digits or 13 digits> + | + <2D data> 
In order to create the correct size, we suggest to first set the module width to a suitable value (e.g. 0.339 mm) and then retrieve the total bar code size with BCGetBarcodeSize / CalculateBarcodeSize. Then use this size for drawing the bar code. For bitmap generation don't set a module width, instead use BCGetOptimalBitmapSize / CalculateOptimalBitmapSize to find the optimal bitmap Pixel dimensions.

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 Data Matrix PPN Code or NTIN Code?

The data structures of the IFA PPN and 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 DataMatrix 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 DataMatrix:

  • 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 Do I Create an EPC QR Code?

The EPC QR code can be used to initiate a SEPA credit transfer (SCT). The 2D code is based upon a standard QR code (ISO/IEC 18004:2015).

If you want to create an EPC QR code with TEC-IT software, select QR Code as the barcode type and set the code page to UTF-8 (advanced properties). Then create the data structure according to the specification (see links below).

For more Information:

How Can I Create a Swiss QR Code V2?

The following sample code in C# .NET shows how to create the data format for Swiss QR Code 2.0.

public enum CurrencyCodes
{
  CHF,
  EUR
}

public enum ReferenceTypes
{
  NON,
  SCOR,
  QRR
}

private const string fldSep = "\n";

decimal? Amount = new decimal(99.01);
CurrencyCodes Currency = CurrencyCodes.CHF;
ReferenceTypes ReferenceType = ReferenceTypes.SCOR;

string QRIBAN            = "";
string CreditorIBAN      = "CH180024024037606600Q";
string CreditorName      = "Robert Schneider AG";
string CreditorAddress1  = "Rue du Lac 1268";
string CreditorAddress2  = "2501 Biel";
string CreditorCountry   = "CH";

string DebtorName        = "Max Mustermann";
string DebtorAddress1    = "Musterstrasse 2";
string DebtorAddress2    = "1234 Musterstadt";
string DebtorCountry     = "CH";
string QRReference       = "";
string CreditorReference = "RF18539007547034";
string Message           = "Optional";
string BillInfo          = "";
string Parameter1        = "";
string Parameter2        = "";


/// 
/// returns the Data string valid for Swiss QR-Code version 2
/// 
/// 
public string GetDataString()
{
  var sb = new StringBuilder();

  //initial
  sb.Append("SPC" + fldSep);
  sb.Append("0200" + fldSep);
  sb.Append("1" + fldSep);

  //creditor
  if (ReferenceType == ReferenceTypes.QRR)
    sb.Append(QRIBAN + fldSep);
  else
    sb.Append(CreditorIBAN + fldSep);

  sb.Append("K" + fldSep);
  sb.Append(CreditorName + fldSep);
  sb.Append(CreditorAddress1 + fldSep);
  sb.Append(CreditorAddress2 + fldSep);
  sb.Append(fldSep + fldSep);
  sb.Append(CreditorCountry + fldSep);

  //ultimate creditor
  sb.Append(fldSep + fldSep + fldSep + fldSep + fldSep + fldSep + fldSep);

  //amount
  if (Amount.HasValue)
    sb.Append(Amount.Value.ToString("#########.00", System.Globalization.CultureInfo.InvariantCulture) + fldSep);
  else
    sb.Append(fldSep);

  sb.Append(Currency + fldSep);

  //debtor
  if (DebtorName + DebtorAddress1 + DebtorAddress2 + DebtorCountry == string.Empty)
    sb.Append(fldSep + fldSep + fldSep + fldSep + fldSep + fldSep + fldSep);
  else
  {
    sb.Append("K" + fldSep);
    sb.Append(DebtorName + fldSep);
    sb.Append(DebtorAddress1 + fldSep);
    sb.Append(DebtorAddress2 + fldSep);
    sb.Append(fldSep + fldSep);
    sb.Append(DebtorCountry + fldSep);
  }

  //reference
  sb.Append(ReferenceType + fldSep);
  if (ReferenceType == ReferenceTypes.QRR)
    sb.Append(QRReference + fldSep);
  else if (ReferenceType == ReferenceTypes.SCOR)
    sb.Append(CreditorReference + fldSep);
  else
    sb.Append(fldSep);

  //additional
  sb.Append(Message + fldSep);
  sb.Append("EPD");
 
  // optional
  if (BillInfo != string.Empty || Parameter1 != string.Empty || Parameter2 != string.Empty)
  {
    sb.Append(fldSep); // close EPD line
    sb.Append(BillInfo + fldSep);
    sb.Append(Parameter1 + fldSep);
    sb.Append(Parameter2);
  }

  return sb.ToString(); // NOTE: last line does not end with fieldSeparator
}

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 software.

After enabling rune mode in our barcode 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 barcode 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

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.