is a two-dimensional (2D) barcode type similar to
or Aztec, which is capable
of encoding large amounts of data. QR means Quick
Response, as the inventor intended the symbol to be quickly decoded.
The data encoded in a QR-Code may include alphabetic characters, text, numbers, double
characters and URLs. The symbology uses a small area of square modules with a unique perimeter pattern,
which helps the barcode scanner determine cell locations to decode
the symbol. IDAutomation's
implementation of QR-Code is based on the ISO/IEC 18004:2006 standard also known
as QR-Code 2005.
Fig. 1. A 2D QR-Code Symbol Generated
QR-Code Image Generator.
QR-Code Common Uses
QR-Codes are commonly used with
mobile and smart-phone devices to direct users to additional
information about a particular topic or product.
Encoding Product Information:
When a QR-Code is used in combination with a product that has a
GTIN, GS1 recommends using the GS1-QRCode
format. This may be used to encode the extended packaging URL, for
additional product information, demonstration videos or a user manual for
When the GS1-QRCode format is used, data is encoded with the FNC1 character
(~1) and begins with the
AI of (01) to reference the GTIN and proceeds with the (8200) AI to
reference the URL, for example:
tutorials and examples)
If the GS1-QRCode format is not used, or if the QR-Code is not used in
connection with a product that has a GTIN, a simple URL may be encoded, for
Whether to use the GS1 format or not depends on requirements of GS1, your
trading partners and the supply chain. When in doubt, contact your
local GS1 office for more information.
vCard contact information (in
business cards is also a common implementation. The image to the right
demonstrates the options available after scanning the barcode in Fig
1 above with a smartphone app.
The chart below lists common uses and the encoding technique. The
QR Code Generator may be used to generate all codes described below.
Simply copy the example below into the
QR Code Generator replacing the generic information with yours.
(IDAutomation does not suggest encoding Tiny URLs
or Indirect Links)
Contact Information, in
||MECARD:N:Smith,John;ADR:550 N. Reo St.,Suite
|NOTE: Symbols created with
the MeCard format only work correctly when scanned with an app
that is MeCard compatible, such as the
Free BeeTag iPhone app.
QR-Codes may also encode the
vCard format, however, these symbols will be larger than the MeCard format.
This is an example of the data that would be encoded to create a vCard:
BEGIN:VCARD VERSION:3.0 N:Smith,John FN:Displayname ORG:IDAutomation URL:http://www.idautomation.com/
EMAIL:you@com TEL;TYPE=voice,work,pref:+18135142564 END:VCARD
QR-Code may also be easily displayed on smart-phone devices in place
of anything that is normally printed with a barcode, such as coupons,
tickets and passes. When used in this way, the QR Code is displayed
on the screen via a website, email or text and scanned from the screen.
IDAutomation 2D USB Scanner quickly performs scans from mobile phone
screens as seen
in this video.
Generating and Printing
IDAutomation offers a
QR-Code 2D Barcode Image Generator, designed to encode a MeCard business card barcode or URL, which can encode up to 200 characters. Capability
to encode more than 200 characters is available in the products described
QR Code Barcode Font and Encoder is a collection of encoders and
components that generate QR-Codes with either fonts or graphics.
QR Code encoders are available in the package to support multiple
operating systems including Windows 32 and 64 bit systems, Mac OS X, Unix and Linux.
This package includes the
IDAutomation_QRFontEncoder(DataToEncode) function to
easily generate symbols from
VBA code in
Microsoft Office and
VB code in
OpenOffice in addition to support for development environments including
.NET, Java, C#, VB and C++.
QR-Code is also offered in
components, such as the
Crystal Reports Barcode Generator,
.NET Windows Forms Control,
ASP.NET Server Control and
Streaming Server for IIS, as well as the
Image Generator for Windows and the
Barcode Label Software Pro.
QR-Codes are some of the
most dependable barcodes in use today, however, they are generally
not as small as Data Matrix and Aztec symbols. QR-Code is also a good choice when sending barcodes over
faxed documents, because the symbol can withstand many poor resolution
and scanning issues, especially when using
IDAutomation's 2D S font.
According to the specification, a quiet zone of four times the size of one module is required on
all sides of the QR-Code symbol. The quiet zone should be the same color
as the background within the symbol. This quiet zone of QR-Code is also larger than Data
Matrix, which only requires one module.
Choosing the correct encoding mode and the lowest error correction of "L"
(or parameter 2) will help ensure the symbol size is as small as possible.
Verifying QR-Code Symbols
Printed QR-Code barcode symbols may be easily verified with the Print
Quality Assessment test found in the
IDAutomation 2D Barcode Scanner. The quality assurance test will
grade the symbol and report any possible problems. The report below
was generated when scanning the symbol in Fig. 1
with PQA enabled:
>> PQA <<
QR CODE: MODEL 2 VERSION 2 (25 x 25 modules)
Mask Pattern Reference #7, Error Correction Level "L"
Data Field: 34 data & 10 checks in 1 block(s) of GF(256)
X roughly = 0.041"
[C] < Data Safety Margin = 46%
[A] < Horizontal Print Growth = +4% of X
[A] < Vertical Print Growth = +1% of X
Error Correction | Encoding Modes
Products such as the IDAutomation
Barcode Fonts and the
all support the encoding modes listed below. By default, the encoding
mode for most components is "byte" and an error correction level of
M (15%). If the choice is to encode numbers and uppercase text only and size is a concern, a change
of the encoding mode to Alpha-Numeric may produce a smaller symbol.
The data represented in the symbol may be encoded using one of the following
||(Default) Encodes lower case letters, text, images,
double-byte characters, binary data and 8 bit values.
||Encodes only numbers, uppercase
letters, the space and the following symbols (&%*+-./:).
||Encodes only numbers.
Four levels of Reed-Solomon error correction are referred to as L,
M, Q and H. The error correction levels allow verification of data and
recovery in the event that part of the symbol is damaged. Increasing
the error correction level increases the symbol size and reduces data
capacity. The percentage of recovery and capacity noted below are approximate.
To generate the smallest symbol choose error correction "L" or parameter "2".
% of Recovery
at Size 24
* The parameter selection is the parameter to use in IDAutomation's
Font and Encoder and other QR Code Components.
The version is the size of the symbol from (1) 21x21 to (40) 177x177.
Zero is the automatic selection and the default. If the symbol needs
to be larger than the selection, the component automatically overrides
Micro QR-Code symbols may also be generated with the setting of (-4) for
automatic. Micro QR-Code is only available in
products that support GS1
QR-Code. The size of the micro QR-Code symbol is from (-4) 11x11 to (-1)
17x17. The largest micro symbol can hold 35 numeric characters in numeric
encoding mode with error correction level set to L (2). If the symbol needs to be larger than the selection, the
component automatically overrides Micro QR-Code mode and creates a standard
QR-Code symbol. Choosing the correct encoding mode and the lowest error
correction L (2) will help ensure the symbol is as small as possible. The
following is a Micro QR-Code encoding 1234567890123456789012 in numeric mode
with error correction L (2).
Control Characters | Tilde
QR Code Barcode Fonts,
use the tilde character "~" to recognize special characters when "Apply Tilde"
or "Process Tilde" is enabled. QR Code allows
codes to be easily encoded for various functions such
as tabs and returns. These functions are not usually visible
when scanned unless the
Scanner ASCII String Decoder is used with a scanner
that has lower ASCII capability such as the
Honeywell Xenon 1900 Barcode Imager or
IDAutomation 2D Barcode Scanner with Control + ASCII mode
- The following tilde options are available:
- ~1: Represents the GS1 FNC1 in first position (in
- ~2: Represents the AIM FNC1 in second position (in
- ~dNNN: Represents the
ASCII character encoded by the 3 digits NNN.
- For example:
represents a tab,
~d013 represents a return,
the <GS> character
~d065 represents the
In many development environments, Chr or Char
may also be used to encode the ASCII value directly. For
example, the programming examples below encode "QR" <tab>
Java: DataToEncode= "QR" +
(char)9 + "CODE";
Visual Basic: DataToEncode= "QR" &
Chr(9) & "CODE"
Reading QR Code Barcodes
Encoding Byte, Unicode
and Extended ASCII Characters
It is possible to scan and encode international and extended
characters provided the instructions below are followed:
- Encode the data using byte encoding.
- Scan the data via the serial interface option (data
bits have to be 8N) on the scanner. Normally, keyboard
wedges and USB scanners do not support extended characters
above ASCII 128, and only scan characters that are actually
on the keyboard. Contact the scanner vendor for more
information as some of the scanner's internal settings
may need to be changed.
Amount of Data Encoded
- It is recommended to limit the amount of data encoded in each symbol to 800
characters or less if possible. The ISO/IEC 18004 specifications state that up
to 2900 bytes and 4200 ASCII characters may be encoded in single symbol;
however, few imagers can dependably decode symbols that large. The amount of
data that can be encoded will vary depending upon the type of data, the encoding
mode and what the scanner can read.
The mask pattern determines which modules are dark and which are light to
make it as easy as possible for a QR-Code scanner to decode the data. This was
important in the early 2000s when matrix based decoding systems were not as
advanced as they are today. With todays modern matrix decoders, all mask
patterns will decode properly in nearly the same amount of time. Because the
mask patterns take many calculations to compute, some IDAutomation products
released after April 2016 include an option to bypass this calculation to make
barcode generation faster.
About the Inventor | Patent Infringement Claims | License Fees
Denso Wave, Inc. invented the QR-Code symbology. A notification
on their website states that no license or royalty fees
are required provided that a proper copyright notice
is included that refers to Denso Wave, Inc. as the copyright
Patent Infringement Claims: There have been
recent patent Infringement claims (Patent
Numbers: 6,199,048 8,131,597) regarding the use of "indirect links", also
referred to as "tiny URLs" embedded in QR-Code symbols. Therefore, when encoding
URLs in QR-Code, IDAutomation suggests encoding the entire URL. IDAutomation
provides the generation component and fonts to generate QR-Code symbols;
IDAutomation is not responsible for the data encoded. This suggestion is not to
be considered legal advice; IDAutomation does not provide legal advice.
Back to Top