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.
- Installing the Barcode Label Software
- Creating barcode labels
- Barcode Label Pro version - Additional capabilities
- Technical issues and support
- Training Videos
- Barcode Label Printing Software Basics
- IDAutomation USB Barcode Scanner
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.
- Download and open or unzip the package to a folder on the hard drive.
- Run the setup EXE to start the installation utility.
- 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
- After the label application is installed, open the software from the appropriate
program group and icon, and choose "Create New Label."
- 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.
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.
- 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.
Choose or verify the following, and then click OK:
- 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.
- 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.
- 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
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.
- Properties of any object may be adjusted by performing a right-click on
the object and choosing "Properties".
- 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.
Learn more about adjusting the properties of an object.
- Choose the print icon when ready to print the labels.
- 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
- If needing to print to a specific label on the sheet, click the Advanced
button for placement options.
How to use the Print Range Features Video
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 using 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 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:
- With the label open and the design area selected, choose Edit - Properties,
right-click - Properties or Item Properties Button.
- Choose the Label Fields tab.
- 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
- 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.
- Barcode Properties Overview
- How to use Fields and Variables
- How to use Constant Label Fields
- How to Create Incremented Barcodes
- How to Global Append a Prefix or Suffix
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.
Perform the following to link to the data source:
- Choose Tools - Data Sets - Link External Data.
- Choose the data type and choose Search to find the file.
- After the source path is found, choose the appropriate table if applicable.
- Choose Link Data; a portion of the linked data should then appear on the
- After the data is linked, choose Close.
- 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.
- Increment the "label number" in the design screen to verify the data is linked.
- When printing, choose "all rows data source" as the option, but only after
printing a single page first to verify the alignment.
- When linking to the CSV or Text files, the format should be as follows:
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:
- Choose Tools - Data Sets - Create Embedded DataSet.
- 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.
- Choose the OK button at the bottom of the window when finished.
- 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.
Adjusting Properties of Objects
Properties may be adjusted by right-clicking on the object and choosing 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
- 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:
& concatenate words
VBCRLF adds a new line
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:
LabelField(name) 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.
- External Data:
Field(col) 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.
- The following is a list of what is supported:
- 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)" & "008012349999999997"
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 chart. Functions 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 &
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.
- 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:
|/ := 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
|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"
|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.
|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.
|Mid(source,x,y) := returns a substring of [source]
starting at position [x] of length [y].
|Right(source,x) returns the first [x] characters in
[source] starting from the right.
|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, 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.
<> or != is not equal;
<= or =< is less than or equal;
>= or => is greater than or equal;
< less than and > greater than.
|3 > 2|
|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|
|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))|
|LabelField(name) := returns the value of the Label Field.||LabelField(SerialNumber)||1|
|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)
|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.
|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].
|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.
- 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 which 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 which follows is variable
numeric data where ??? is the length of bits reserved for encoding this
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 which 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 which 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:
InvalidOperationException after installing (Disable and re-enable .NET 3.5;
version 2022 or later also resolves this issue)
- Barcode prints but will not scan (or scan correctly)
- CSV files do not associate data types to fields
- Why is an extra character added to the end of a Code 39 or Codabar barcode?
- How to create an SSCC18 Barcode with the Label Software
- Why are the check digits of Code 128 in the human-readable form not viewable?
- Barcode Label Software prints blank label or prints partial label on thermal printer
- Barcodes are different sizes when printing to printers with different resolutions
- Barcode Label Software returns "Unable to read from external data source" error
- Receive "frmLinkExternalSource.fillTables" error message when linking external data source
- Specified paper size printer error (how to manually set the paper size and margins)
- Oracle Database Link Error
- Error: "MSCOREE.DLL was not found"
- Error: "Operation could destabilize the runtime"
- How to add leading zeros to a barcode
Anchors are offset from objects
- If errors are received after installation that is not documented here when starting the application, try to reinstall the Microsoft® .NET Framework. In some cases, the .NET Framework gets corrupted, and reinstalling it may resolve these issues.
Popular Forum Post Resolutions:
- Create Barcodes using an Embedded Dataset
- Create SSCC18 with Constant and Serial Data
- Create Intelligent Mail Barcode (Tracing)
- Create Inverted Barcodes
- Encode a TAB or function in a Code 128 barcode
- Encode a TAB or function in a PDF417 barcode
- Encode a TAB or function in a 2D (QR Code, Data Matrix, Aztec) barcode
- Error: The Application was not able to load a Required Virtual Machine Component
- Error method: could not read from data source. Cannot dekrypt file
- Error: Office System Driver: Data Connectivity Components
- Format Date in External Excel File
- How to encode GS, RS, and EOT Characters
- How to Add the L# label number and T# total number of labels
- Print Multiple of Same Label
Install Connectivity Driver for Office 2010
Using Field and Variables Features
Create Serial Numbers and Constants
Create Intelligent Mail Tracing Barcode
Installation on a Network Drive for Multiple Users
- 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.
- Start the install utility.
- When prompted for the location, select the network drive and complete the installation process.
- Create shortcuts on other computers that need to run the application.
- If errors occur on any of the computers, try performing the steps outlined in the document about setting security rights for .NET applications.
- Make sure there is a license for each user that has access to the software.