Barcode Label Software Manual & Tutorial

IDAutomation Barcode Label Software is an easy-to-use WYSIWYG barcode label printing software application that prints barcodes, text, and graphics on standard laser and inkjet printers, in addition to thermal transfer printers.

Product Update Notice - The latest version is now available with several enhancements and security updates. IDAutomation strongly recommends updating to the latest version. For more information, view the product update notice.

Buy License Support Download Demo Feature Compare Release Log


The Label Software is built to run on any Windows operating system that supports the Microsoft® .NET Framework 4.

  1. Download and open or unzip the package to a folder on the hard drive.
  2. Run the setup EXE to start the installation utility.
  3. If there is a popup message that states that Microsoft .NET Framework needs to be installed first, please do so and run the EXE file again. The Microsoft .NET Framework may be installed by running Windows Update from a computer connected to the Internet.

Creating Barcode Labels

By using the process outlined here, labels can be created that include barcodes, text, and graphics. After the label is created, it can be saved and retrieved for later use. Create a Custom Label Video

  1. After the label application is installed, open the software from the appropriate program group and icon, and choose "Create New Label."
    Create new label
  2. At the "Label Options" screen, select the printer that the labels will be printed to, the label stock type, and the preferred units of measure.
    Choose label options.
    Predefined label stock contains several definitions for Avery, Herma, Zweckform, and a few others. When using thermal barcode printers, it is recommended to choose the "Define custom label stock" option. Click Next.
    Pick predefined stock
  3. When choosing the "Define Custom Label Stock" option, the selections on the next screen will allow the label software to automatically calculate the size of each label.
    Define custom label stock
    Choose or verify the following, and then click OK:
    1. The number of rows and columns of the label sheet. For thermal printers, leave the rows and columns at their defaults and choose the label from the "Paper Type" drop-down box.
    2. The spacing between labels.
      In this example, Avery® 5263 laser labels are being used; therefore 5 rows and 2 columns were selected. Also added was spacing between labels of 0.2; smaller labels may use only .1 or .05 in these fields. Notice how the label size is automatically calculated. The label layout can be saved from this screen by clicking the save button; this allows the user to easily select it as a predefined label file stock in the future by choosing "Predefined Label Stock" and then selecting "Custom" from the label products list.
      Defining custom barcode label templates
  4. On the next screen, click the appropriate object to add text, barcodes, graphics, and objects into the design area. If there is a gray border in the design area, this indicates an area where the selected printer is not able to print.
    Placing objects in the label area
    The Pro version includes additional objects for QR Code, GS1-DataBar, MICR, PDF-417, Data-Matrix, and other 2D barcode types. Version 2022 and later also includes the built-in ability to encode Unicode UTF8 characters in QR Code and Data Matrix.

  5. Properties of any object may be adjusted by performing a right-click on the object and choosing "Properties".
    Adjusting properties of the barcode objects
  6. When selecting the barcode icon, choose the Value tab from the Properties window. This determines the value to be encoded in the barcode. This is where an incremented, formula or static value, or a link to an external database may be created.
    Barcode values
    Learn more about adjusting the properties of an object.
  7. Choose the print icon when ready to print the labels. 
  8. Verify or select the print range and choose Print. (It is recommended to print only a few labels at first to verify the alignment to the printer.) If the labels do not print accurately, try adjusting the margins and the spacing between labels in the Label Stock Properties screen by choosing File - Label Stock Properties.
    Set label stock properties
  9. If you need to print to a specific label on the sheet, click the Advanced button for placement options. How to use the Print Range Features Video
    Set print range

Creating Label Fields (Constants & Serial Numbers)

Label Fields (Available only in 2009 or later versions) may be used to simplify updates when multiple objects on a label use the same information. For example, a text object and a barcode object may contain the same serial number field that creates a unique incremented number for each label printed. Label Field properties
Label Fields may be constant values or incrementing numbers. Incremented number fields keep track of which numbers have been printed in previous print jobs so that each label has a unique number. When the label is opened the next time for printing, the serial number fields begin incrementing at the next unused number.

Use the following procedure to set up Label Fields:

  1. With the label open and the design area selected, choose Edit - Properties, right-click - Properties or Item Properties Button.
    Item Properties
  2. Choose the Label Fields tab.
  3. Choose Constant Value or Incrementing Number and enter any necessary values or numbers. Choose the Rename/Name Field option to create a friendly name for the field. In the example below, the "SerialNumber" label field is being renamed to "InventoryBarcode".
    Creating constants and serial number labels
  4. After the fields are created and applied, they may be used in the Value tab with a VB Script formula by right-clicking on the barcode and choosing the value tab. In this example, the newly named label field is being referenced and the Value that was set in the previous step is being called.
    Using the serial number in a VB Script label.

Related Videos:

Linking to External Data Sources & Databases

This barcode label software can link to columns in Microsoft® Access, Excel, or a CSV text file as a data source for a text or barcode object, which allows the printing of labels from data in Excel and Access or from a file export from other software. IDAutomation's label software can also link to a custom embedded data source.

The Pro version provides links to multiple data sources, powerful database macros, and support for additional data sources including ODBC, DSN, Oracle, and SQL Server.

Link to External Source Video

Perform the following to link to the data source:
  1. Choose Tools - Data Sets - Link External Data.
    Link to external data
  2. Choose the data type and choose Search to find the file.
    Choose data to link to
  3. After the source path is found, choose the appropriate table if applicable.
  4. Choose Link Data; a portion of the linked data should then appear on the screen.
    Link to external data
  5. After the data is linked, choose Close.
  6. Select the field that needs to be linked to the external data and then choose Item Properties to link a column of data to a barcode or text object, click the down arrow next to "Value Type" and select "External DataSource", and click on the source column to link the value. The example window will show what is linked.
    Linked data
  7. Increment the "label number" in the design screen to verify the data is linked.
  8. When printing, choose "all rows data source" as the option, but only after printing a single page first to verify the alignment.
    Print all rows of linked spreadsheet
  9. When linking to the CSV or Text files, the format should be as follows:
    CSV: "Column1","Column2","Column3"
    TEXT: Column1,Column2,Column3
    NOTE: fields containing numbers beginning with zero must be in CSV format and included in parenthesis.

Creating an Embedded Data Set for Manual Data Entry

IDAutomation's barcode label software allows the user to create a database, which is embedded in the label data file itself. This allows data entry of several different custom values to be created on labels.

Perform the following to Create an Embedded Data Set Manually:
  1. Choose Tools - Data Sets - Create Embedded DataSet.
    Create an embedded data set
  2. By default, three columns are created. Use the buttons at the bottom of the window to add or remove a column or export the data.
    Blank data editor
  3. Choose the OK button at the bottom of the window when finished.
    Completed data editor
  4. To link a barcode to the data entered, right-click on the barcode, choose Properties, choose the Value tab, select External Data Source as the value type, and select the embedded data set that was just created.
    Link to embedded data set

Adjusting Properties of Objects

Properties may be adjusted by right-clicking on the object and choosing Properties.

Label software bar code properties

The following is a list of common properties and their functions in each tab:


  • Allows users to manually place the barcode in the design area and change the orientation.


  • This is the data that is encoded in the barcode. Please note that some barcodes such as DataBar, IntelligentMail, UPC, and EAN accept only numbers and a specific number of digits. Entering data that is incorrect for the barcode type may cause unpredictable results.

  • Global append values will append a prefix or suffix to the value. For example, an incremented value of 101 and a prefix of TX will create a barcode encoding TX101 on label 1 and TX102 on label 2.
  • The formula value creates the barcode from the VB syntax formula entered. For example, the formula of "TX" & 100 + L# will create a barcode encoding TX101 on label 1 and TX102 on label 2.
    • The following is a list of what is supported:
      • Operators:
        / divide
        * multiply
        & concatenate words
        - subtract
        + add
        VBCRLF adds a new line
      • Variables:
        L# label number
        T# total number of labels. Example: "This is label " & L# & " of " & T#  produces This is label 2 of 5.
        Date() returns the current date; for example 11/18/2010
      • Label Fields:
        ) returns the value of the Label Field. Label fields may be incrementing serial numbers or static constant values and are created in the properties tab of the label (Edit - Properties - Label Fields). Available only in 2009 or later versions.
        Example: LabelField(SerialNumber)
      • External Data:
        returns the value in the linked data source for the column [col] of the current row. Example: Field(1)
        FieldName(name) returns the value in the linked data source for the column according to the current row. Example: FieldName(FirstName). If a header row is linked in and two names are the same, the second name appends a "1", for example, "CompanyName" and "CompanyName1". If one of the columns is blank, it will be referenced as F# where # is the column number. The linked Value Table displays the TableName of each item.
      • Additional variables, macros,  and external database functions are available in the Pro and RFID versions of the software.


  • Allows users to manually select the anchor point of the component.


  • This is where the barcode height, width, and margins are defined.
  • Increasing the Bar Width (X dimension) will increase the width of the entire barcode. Because most barcodes require specific settings in this area, the barcode cannot be sized by dragging its edges in the design window. The default X dimension is 0.03 CM or about .012" or 12 mils. This value may need to be lowered if the scanner cannot read barcodes with small X dimensions. When working with a high-quality barcode scanner, this value can be decreased to obtain a higher-density barcode.
  • The measurement of mils is an industry standard that is 1/1000 of an inch.


  • This tab defines applicable Barcode Properties:
  • Size - the size of the symbol is changed by adjusting the barcode X Dimension and Height.
  • Barcode Encoding - this is the type of barcode or symbology. The default is Code-128, which encodes numbers, text, and other information.
  • Use Check Digit - automatically adds the check digit to the barcode. The check digit is required for all symbologies except Code 39, Interleaved 2 of 5, Industrial 2 of 5, and Codabar. When using symbologies that do not require the check digit, the check digit option may be disabled. In cases where the check digit is already provided in the data source, the check digit option may be disabled.


  • Allows the ability to change or disable the text that is displayed next to the barcode.
  •  The Character Grouping field determines the number of characters between spaces in the text interpretation of the data encoded in the barcode. Default =0 (off); supported values are 3, 4, and 5.


  • Allows changing the colors of the barcode, text, and background.

Generating GS1-128 & Encoding Functions

When ApplyTilde is enabled in the "AUTO" setting for Code 128, additional capabilities are enabled.

To generate GS1-128, the parentheses or tilde methods should be used as described in the GS1-128 section of the Code 128 FAQ. For example, the SSCC18 data of (00)008012349999999997 may be encoded as a GS1-128 barcode using the parentheses (00)008012349999999997 or with the tilde ~21200008012349999999997.

Additional Tilde capabilities are also available that allow calculation of the MOD 10 check digit, for example, ~2120000801234999999999~m17.
VB script formulas may also be used if desired to achieve the same result:
"(00)" & "

Encoding Functions such as Tabs and Returns in Code 128

The format ~ddd may be used to specify the ASCII code of the character to be encoded. For example, Code~009Bar~013 will create a barcode that encodes Code<Tab Function>Bar<Return Function>. To find the values for other functions, refer to the ASCII chartFunctions can be viewed when scanned with the IDAutomation Scanner ASCII Decoder.

Generating GS1 QR Code or GS1 Data Matrix 

In the Pro versions 2022 or later, the FNC1 may be encoded with ~1 according to the GS1-QR Code FAQ & GS1-Data Matrix FAQ.

Additional Capabilities of the Pro Version

The Pro version contains additional advanced features including VB scripting capabilities, additional database connectivity, and support for QR Code, Data Matrix, MICR, DataBar, PDF417, and other 2D barcode types.

Connecting to additional data sources including ODBC, DSN, Oracle, and SQL Server:

  • From the label software menu, choose Tools - Datasets - Link External Data.
  • Select the link type and enter all necessary fields.
  • After the link is set up, the user may link to the data field from a barcode object or use a VB Script formula to generate the data to be encoded in the barcode.

Using VB Script formulas:

  • In the Value dialog box for the barcode properties, select Formula.
  • Enter the VB script formula to generate the data to be encoded in the barcode.
  • The following is a list of properties supported:


Description Example Usage Output
/ := divide $labelsPerPage=5
"TotalPages =" & T#/$labelsPerPage
* := multiply L#/T# * 100 & "% done" 20% done
& := concatenate words "Label " & "L# & "of" & T# Label 1 of 5
- := subtract "Labels left = " & T# - L# Labels left = 4
+ := add "Next Label = " & L# + 1 Next Label = 2
VBCRLF:= Carriage Return + Line Feed (adds a new line) "Line1" & VBCRLF & "Line2" Line1


Description Example Usage Output
L# := Label Number L#  1
T# := Total Number of Labels
(if a dataset is linked or embedded)
"This is label " & L# & " of " & T#
This is label 2 of 5.
$myVar := Custom variable called 'myVar' $myVar = "123"


Description Example Usage Output
Chr(charcode):= ASCII Number to Char
Returns the character associated with the specified charcode from the ASCII chart.
Chr(73) & Chr(68) & Chr(65) IDA
Currency(exp,nl) := converts exp to a currency
exp := string; n := number of decimal places
Returns a number in the correct regional currency. The default decimal number is 2.
Currency(12,2) $12.00
InStr(haystack,needle) := returns the index of the needle (string being searched) in the haystack (string to be searched). "m is at " & Instr("IDAutomation",m)
$a = "24680"
$b = Instr($a ,"6")
"6 is at position " & $b
m is at 7

"6 is at position 3"
Len(source) := returns the length of [source] text. Len("IDAutomation") 12
Left(source,x) := returns the first [x] characters in
[source] starting from the left.
Left("IDAutomation",3) IDA
Mid(source,x,y) := returns a substring of [source]
starting at position [x] of length [y].
Mid("IDAutomation",3,4) Auto
Right(source,x) returns the first [x] characters in
[source] starting from the right.
Right("IDAutomation",6) mation
The Right(source,x) macro may also be used to ensure zeros are appended to the beginning of a number field that must be a certain number of digits in length, such as the requirements for the 14-digit GTIN. Example: Right("00000000000000" & LabelField(UPC_Number),14)
Number(source, [n], [paren], [group])
source := expression to convert
[n] := optional decimal places = 2
[paren] := optional parenthesis for negative numbers = False 
[group] := optional group digits = True
Number(-1234.56789, 2)
Number(-1234.56789, 4)
Number(-1234.56789, 4, true)
Number(-1234.56789, 4, true, false)
If(test-condition, true-expression, false-expression) If evaluates the test-condition, and if true (or 1) the true expression is evaluated, otherwise the false-expression is evaluated.
$x = Right(L#,1)
$Result = (
if($x == "0", "Even",
if($x == "2", "Even",
if($x == "4", "Even",
if($x == "6", "Even",
if($x == "8", "Even", "Odd"))))))
L# & " is " & $Result
"1 is Odd"

"39 is Odd" if the label number is 39.
Valid Test Operators: Numeric evaluation is the default and lexical string evaluation falls back.
== equal;
<> or != is not equal;
<= or =< is less than or equal;
>= or => is greater than or equal;
< less than and > greater than.
3 > 2

Date Macros:

Description Example Usage Output
Date() := the current date Date() 05/21/2015
Time() := the current time Time() 11:10 AM
Year() := the current year Year() 2015
Month() := the current month Month() 5
MonthName() := the current month name MonthName() May
Day() := the current day of the month Day() 21
DayName() := the current day name DayName() Thursday


Description Example Usage Output
Mod10(int) := the GS1 MOD10 check character that is often used in SSCC-18, GTIN, GS1-128,  and Data Matrix barcodes. Mod10(12345678901) 2
Mod43(text) := the check character calculated according to code 39 Mod43. Mod43(A123BJC5D6E7) H
ISO7064(text) := the ISBT K check character according to ISO7064. ISO7064(W000007123456) D
Base64(text) := converts text, including Unicode characters to Base-64. Base64("IDA") SURB
Base4(int1,optional int2) := returns base-4 where int1 is the number to convert to base-4 and int2 the number to add to each digit of the result to create an ASCII character, defaults to 48. Base4(500) & vbcrlf &
Base2(int1, optional int2) := returns base-2 where int1 is the number to convert and int2 is the number to add to each digit of the result to create an ASCII character, defaults to 48.
This function may be used to create hidden, more secure barcodes with hidden text.
Base2(5) & vbcrlf &
TLV(text|text|text...) :=converts fields of data separated by the | character to Tag, Length, Value format. TLV(Field1|Field2|Field3)  
Base64(TLV(text|text|text...)) :=converts fields of data separated by the | character to TLV in Base 64. Base64(TLV(Field1|Field2|Field3))  

Label Fields:

Description Example Usage Output
LabelField(name) := returns the value of the Label Field. LabelField(SerialNumber) 1

External Data:

Description Example Usage Output
Field(col) := the value in the linked data source
for the column of the current row
(The current row is defined as the label number)
Field(1) Joe Smith
FieldName(name) := the value in the linked data
source for the column of the passed-in name and
the current row
If a header row is linked in and two names are the same, the second name appends a "1", for example, "CompanyName" and "CompanyName1". If one of the columns is blank it will be referenced as F# where # is the column number. The linked Value Table displays the TableName of each item.
FieldName(Age) 21
Table(id).Field(row,col) := Returns the value in the linked data source [id] corresponding to the respective [row] and [col]. Table(1).Field(1,1) Joe Smith
Table(id).Rows := Returns the number of rows of linked data source [id]. Table(1).Rows 5
Table(id).Columns= count of columns in the
linked data source [id].
Table(1).Columns 2
NOTE: The linked data source (id) starts at 1. Columns are numbered from left to right and start at 1. Choose Value Type - External Database to preview the column numbers and associated data.

Additional example formulas:

  • LabelField(CustomerNumber) & LabelField(SerialNumber)
    L# * 2 & "12345678" & Field(1)
    "~212" & L# * 2 & "12345678" & Table(1).Field(L#,1)

2D and DataBar barcode types:

  • The Pro and RFID versions include several additional barcode properties. Additional barcode icons will appear in the applicable version to allow additional barcode support. A MICR icon is also available in the Pro version to design and print checks without the use of a font.

MICR Properties:

  • The MICR object creates MICR E-13B symbols without the use of a font. Within this component, the character spacing and print intensity may be adjusted if necessary. In the event that IDAutomation MICR Fonts are installed, changing the "MICR Type" allows the use of the font with adjustment in 1/100 font size increments. MICR check template examples may be downloaded and used as a starting point when designing bank checks.

TLV Base64: (Requires Pro Verison 2022 or later)

A label Example of what is mentioned below is provided in the VBScript Examples folder of the program group after installation. TVL and Base 64 data can be verified with the Data Decoder App.

  • TLV in Base64 may be encoded in QR Code using the format described in the TLV Base64 FAQ with a formula that places the pipe character between fields. For Example:
    "|" & LabelField(SellerName) & "|" & LabelField(VNumber) & "|" &  ...
  • TLV in Base64 may be encoded in Data Matrix with the following formula:
    BASE64(TLV(LabelField(SellerName) & "|" & LabelField(VNumber) & "|" &  ... ))

Swiss Cross in QR Code: (Requires Pro Verison 2022 or later)

  • The Swiss Cross may be easily created in the center of a QR Code symbol using a formula according to the Center Override FAQ. For example:
    Your Data & "~CO99,00007F00770077004100770077007F000000"

RFID Version Properties (discontinued)

  • The formatting options below may be used in the value property to allow variable data, such as a serial number or text, to be encoded in an RFID tag. Special processing is performed when a tilde character is used to properly format the data to the tag and ensure it is correct. The processing operations that may be performed are as follows:
  • ~b??? informs the encoder that the data that follows is binary data where ??? is the length of the binary data in bits.
    For example, ~b00811001100 encodes 8 bits of the binary data 11001100 in the tag (which represents the number 204).
  • ~n??? informs the encoder that the data that follows is variable numeric data where ??? is the length of bits reserved for encoding this number.
    For example, ~n016170 encodes 170 which is converted to binary as 0000000010101010. Because 16 bits are reserved for this number, several zero bits are added to the beginning. This may be necessary when encoding variable-length serial numbers. Because this number may be variable, a space or tilde must follow it if data is to be encoded after the number.
  • ~x??? informs the encoder that the data that follows is hexadecimal data, where ??? is the length of bits reserved for encoding. Four bits are reserved for each character. Therefore, multiply ??? by 4 to determine the total number of bits reserved in the tag for this command.
    For example, ~x016A1C3 encodes A1C3 as hexadecimal which is 1010000111000011 in binary format; 16 bits in length.
  • ~t??? informs the encoder that the data that follows is variable text or ASCII data to be encoded where ??? is the length of bits reserved for encoding. This process may be used to encode standard text or ASCII data in RFID tags. Up to 12 characters may be stored in a 96-bit tag; 8 bits are required for each character. A tilde must follow this text if data is to be encoded after it. For example ~t032TEXT~n016170

Technical Issues & Support

Priority support is provided up to 30 days after purchase. Additional priority support may be obtained if the Priority Support and Upgrade Subscription is active. Free product support may be obtained by reviewing the knowledgebase articles that are documented below and by searching the resolved public forum threads

Common Issues and Solutions:

Popular Forum Post Resolutions:

Training Videos

                          Barcode Properties Overview

                          Link to External Data

                          Install Connectivity Driver for Office 2010

                          Create a Custom Label

                          Using Print Range Features

                          Using Field and Variables Features

                          Create Serial Numbers and Constants

                          Create Incremented Barcodes

                          Create SCC14 Barcodes

                          Create GS1 Barcodes

                          Create SSCC18 Barcodes

                          Create Intelligent Mail Tracing Barcode

                          Installation on a Network Drive for Multiple Users

                          1. Because this product does not install any DLLs or other components in the system directories, it may be easily installed and run from a network or a mapped drive.
                          2. Start the install utility.
                          3. When prompted for the location, select the network drive and complete the installation process.
                          4. Create shortcuts on other computers that need to run the application.
                          5. If errors occur on any of the computers, try performing the steps outlined in the document about setting security rights for .NET applications.
                          6. Make sure there is a license for each user that has access to the software.