Home: Products: QR-Code Barcode Fonts: QR-Code Barcode FAQ & Tutorial:

QR-Code Barcode FAQ & Tutorial

Index:

QR-Code Overview

QR-Code is a very efficient, two-dimensional (2D) barcode symbology that uses a small area of square modules with a unique perimeter pattern, which helps the barcode scanner determine cell locations and decode the QR-Code symbol. Characters, numbers, text and actual bytes of data may be encoded, including Unicode characters and photos. IDAutomation's implementation of QR-Code is based on the ISO/IEC 18004:2006 standard.

Fig. 1. QR Code Barcode Example

Size and Accuracy

QR-Code is one of the smallest and most dependable barcode symbologies. Compared to other barcode types, QR-Code is approximately 30 times smaller than a Code 39 barcode representing the same data. The size difference of popular barcode types is compared in the Barcode Symbology Evaluation and Test Sheet. QR-Code is also a good symbol choice when sending barcodes over faxed documents, because the symbol can withstand many poor resolution and scanning issues.

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.

Printing and Generating QR-Codes

The IDAutomation QR-Code Barcode Font and Encoder is a collection of encoders and components that generate QR-Code symbols with fonts or graphics. Several types of QR-Code encoders are available in the package to support multiple operating systems including Windows, MAC, Unix and Linux.

Verifying QR-Code Barcodes

Printed QR-Code barcode symbols may be easily verified with the Print Quality Assessment test found in the Hand Held Products 2D Imager. 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 from Hand Held Products <<
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

Reading QR-Code Barcodes

The most common method of reading QR-Code barcodes is with a camera-based image reader (aka: barcode imager). Most of the hand-held barcode imagers recommended by IDAutomation perform keyboard emulation and receive power from the USB port so that no external power supply is needed. When a QR-Code barcode symbol is read using keyboard emulation, the data appears at the cursor as if it had been typed in from the keyboard.

Most barcode imagers have the ability to read QR-Code barcodes by default, such as the Symbol, Metrologic and Hand Held Products Barcode Imagers. Many hand-held imagers also read very small symbols, such as the Hand Held Products 2D Imager, which reliably reads the IDAutomation QR-Code Barcode Font when printed as small as 3 points, which is an X-dimension of 10 mils.

In many cases, it may be desired to have the scanner trigger a form or action in an application. IDAutomation has documented simple methods of accomplishing this task in the USB Barcode Scanner Application Integration Guide.

Encoding ASCII Functions (such as Tabs and Returns)

QR-Code allows ASCII codes to be easily encoded for various functions such as tabs and returns. These functions are not usually visible when scanned unless the Barcode Scanner ASCII String Decoder is used with a scanner that has lower ASCII capability such as the Metrologic Focus or the HHP 4600 Imager with Control + ASCII mode enabled. In all IDAutomation products, the tilde (~) may be used to encode ASCII functions according to the documentation. For example; ~d009 is used to encode a tab and ~d013 encodes a return. In many development environments, Chr or Char may also be used to encode the ASCII value directly. For example, the programming examples below encode "ECC" <tab> 200:

Java: DataToEncode= "ECC" + (char)9 + "200";
Visual Basic: DataToEncode= "ECC" & Chr(9) & "200"

Encoding Double Byte, Unicode and Extended ASCII Characters

It is possible to scan and encode international and extended characters provided the instructions below are followed:

  1. Encode the data using byte encoding.
  2. 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. In ASCII or text mode, the amount of data that can be encoded is significantly decreased due to mode switching between different types of characters, such as between numbers, upper case, lower case and punctuation.

Most camera based imagers and hand-held scanners have difficulty reading symbols that contain over 800 characters. In the best case scenario, up to 1200 ASCII characters have been successfully encoded and read by using the text encoding mode of the IDAutomation QR-Code Barcode Font with the Hand Held Products 2D Barcode Imager.

Error Correction and Encoding Modes

Products such as the IDAutomation QR-Code Barcode Fonts and the QR-Code Components all support the encoding modes listed below. By default, the encoding mode for most components is "byte" and an error correction level of M. If the choice is to encode 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 modes:

Encoding Mode Parameter Selection* Description
Byte 0 Encodes lower case letters, text, images, double-byte characters, binary data and 8 bit values.
Alpha-Numeric 1 Encodes only numbers and uppercase letters. In this encoding mode, lower case letters will be converted to upper case. All other data will be filtered out.
Numeric 2 Encodes only numbers; all other data will be ignored.

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.

Error Correction Level Percent of Recovery Byte Capacity at Size 24 Parameter Selection*
L 7% 1171 2
M 15% 911 0
Q 25% 661 3
H 30% 511 1

* The parameter selection is the parameter to use in IDAutomation's QR Code Font and Encoder and other QR Code Components.

Symbol Version:

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 this value.

Control Characters and use of the Tilde

IDAutomation QR-Code Barcode Fonts, Components and Applications use the tilde character "~" to recognize special characters when "Apply Tilde" or "Process Tilde" is enabled. The following tilde options are available:

  • ~dNNN: Represents the ASCII character encoded by the 3 digits NNN. For example, ~d009 represents a tab, ~d013 represents a return and ~d065 represents the character 'A'.
  • ~1: Represents the character FNC1. When FNC1 appears in the first position (or in the fifth position of the first symbol of a Structured Append), it indicates that the data conforms to the UCC/EAN Application Identifier standard format.

Is a License Required for Use?

Denso Wave, Inc. invented the QR-Code symbology. A notice on their website states that no license or royalty fees are required for use provided that a proper copyright notice is included that refers to Denso Wave, Inc. as the copyright owner.

 

To sign up for monthly updates about new products or upgrades, please click here.Copyright © 2009 IDAutomation.com, Inc. Legal Notices.
QR-code is trademarked by Denso Wave, Inc.

Over 70% of Fortune 100 companies use IDAutomation's products to automate their businesses.