barcodelib.com Home
  Contact Us  |   Purchase  
Google
BarcodeLib.com Home > Products > Barcode for Java > Barcode QR Code


QRCode Barcode for Java, J2EE, JasperReports

It is also known as Denso Barcode, QRCode, Quick Response Code, JIS X 0510, ISO/IEC18004

Quick Navigate
QR Code is a kind of 2-D (two-dimensional) symbology developed by Denso Wave (a division of Denso Corporation at the time) and released in 1994 with the primary aim of being a symbol that is easily interpreted by scanner equipment.

QR Code is capable of handling all types of data, such as numeric and alphabetic characters, Kanji, Kana, Hiragana, symbols, binary, and control codes.

The symbol versions of QR Code range from Version 1 to Version 40. Each version has a different module configuration or number of modules (the module refers to the black and white dots that make up QR Code). "Module configuration" refers to the number of modules contained in a symbol, commencing with Version 1 (21 x 21 modules) up to Version 40 (177 x 177 modules). Each higher version number comprises 4 additional modules per side. Each QR Code symbol version has the maximum data capacity according to the amount of data, character type and error correction level. In other words, as the amount of data increases, more modules are required to comprise QR Code, resulting in larger QR Code symbols.

QR Code has error correction capability to restore data if the code is dirty or damaged. Four error correction levels are available for users to choose according to the operating environment. Raising this level improves error correction capability but also increases the amount of data QR Code size. To select error correction level, various factors such as the operating environment and QR Code size need to be considered. Level Q or H may be selected for factory environment where QR Code gets dirty, whereas Level L may be selected for clean environment with the large amount of data. Typically, Level M (15%) is most frequently selected. The QR Code error correction feature is implemented by adding a Reed-Solomon Code to the original data.
QR Code is a matrix symbology with the following characteristics:
  1. Formats: QR Code, with full range of capabilities and maximum data capacity;
  2. Encodable character set:
    • numeric data (digits 0 - 9);
    • alphanumeric data (digits 0 - 9; upper case letters A -Z; nine other characters: space, $ % * + - . / : );
    • byte data (default: ISO/IEC 8859-1);
    • Kanji characters.
  3. Version (Symbol size) (not including quiet zone): 21 x 21 modules to 177 x 177 modules (Versions 1 to 40, increasing in steps of four modules per side).
  4. Maximum QR Code symbol size, Version 40-L:
    • numeric data: 7089 characters
    • alphanumeric data: 4296 characters
    • Byte data: 2953 characters
    • Kanji data: 1817 characters
  5. Selectable error correction level:
    Four levels of Reed-Solomon error correction (referred to as L, M, Q and H in increasing order of capacity) allowing recovery of:
    • L 7%
    • M 15%
    • Q 25%
    • H 30%
    of the symbol codewords.
  6. Structured Append: This allows files of data to be represented logically and continuously in up to 16 QR Code symbols. These may be scanned in any sequence to enable the original data to be correctly reconstructed.
  7. Extended Channel Interpretations: This mechanism enables data using character sets other than the default encodable set (e.g. Arabic, Cyrillic, Greek) and other data interpretations (e.g. compacted data using defined compression schemes) or other industry-specific requirements to be encoded.
  8. FNC1 Mode: FNC1 mode is used for messages containing specific data formats. In the "1st position" it designates data formatted in accordance with the GS1 General Specifications. In the "2nd position" it designates data formatted in accordance with a specific industry application previously agreed with AIM Inc. FNC1 mode applies to the entire symbol and is not affected by subsequent mode indicators.
QRCode Barcode for Java supports:
  • numeric data (digits 0 - 9);
  • alphanumeric data (digits 0 - 9; upper case letters A -Z; nine other characters: space, $ % * + - . / : );
  • byte data (default: ISO/IEC 8859-1);
  • Kanji characters.

The following code illustrates how to create a barcode in a Java class

1            QRCode barcode = new QRCode(); 
2            barcode.setData("123456789"); 
4            barcode.createBarcodeImage("c:/qrcode.gif"); 


  • Create a QRCode object (line 1)
  • set QRCode object properties (line 2)
  • save into gif file (line 4)

There are two ways to create barcode images in your Java web applications.

  1. This is the simplest way to stream barcode image using our provided barcode servlet classes.

    And it will not save barcode images in your server side.

    • Under demo package, copy barcode folder to your java servlet container like tomcat.

    • To test your installation, goto http://YourDomain:Port/barcode/qrcode?Data=123456789

    • To create barcode image in your JSP page, you can pass the url to IMG tag src value. For example, <img src="http://YourDomain:Port/barcode/qrcode?Data=123456789" />

  2. The second method is similar with the way to generate barcode in Java applications.

    • Create a barcode image in server side

      1            QRCode barcode = new QRCode(); 
      2            barcode.setData("123456789"); 
      4            barcode.createBarcodeImage("C:/Tools/Tomcat 5.5/webapps/YourWebApp/bimages/qrcode.gif"); 
      
      
      

    • In your JSP page, you can using IMG tag to display generated image, like <img src="http://YourDomain:Port/YourWebApp/bimages/qrcode.gif" />

The following jasper xml content illustrates how to insert a barcode into JasperReports

<import value="com.barcodelib.barcode.BarcodeFactory"/> 

Import class BarcodeFactory to report.

 
<imageExpression class="net.sf.jasperreports.engine.JRRenderable"> 
    <![CDATA[new com.barcodelib.barcode.BarcodeJasperRenderer( 
        BarcodeFactory.createQRCode("0470821632", 0, 0))]]> 
</imageExpression>

Please go to class BarcodeFactory in Java doc for all methods to create QRCode barcode.

Developers also can extend BarcodeFactory class to meet their own requirements. Complete BarcodeFactory.java Source Code

Just call QRCode object method createBarcodeImage, e.g. barcode.createBarcodeImage("c:/qrcode.gif");
Category Class Attribute Applet & Servlet Default Value Comments
Basic Settings
data data "" This is the barcode text to be encoded. The type is String.
binaryData - null  
version version int 1
ecl ecl 0 ECL_L (0), ECL_M (1), ECL_Q (2), ECL_H (3)
encoding encoding ENCODING_AUTO (0) ENCODING_AUTO (0), ENCODING_ALPHANUMERIC (1), ENCODING_BYTE (2), ENCODING_NUMERIC (3), ENCODING_KANJI (4)
eci eci -1 The type is int, default is -1. Valid values are from 000000 to 999999.
fnc1Mode fnc1Mode 0
applicationIndicator applicationIndicator 0
processTilde processTilde false Set the ProcessTilde property to true, if you want use the tilde character "~" to specify special characters in the input data. Default is true. ~NNN: is used to represent the ASCII character with the value of NNN.
Structured Append
supportStructuredAppend supportStructuredAppend false  
appendCount AppendCount 0  
appendIndex AppendIndex 0  
Image Size and Style
uom UOM 0 (pixel) Unit of measure for barcode size settings, type is float, default is 0 (pixel). Valid values are 0 (pixel), 1 (CM), 2 (Inch)
resolution Resolution 96 Image resolution. Default is 96 DPI.
moduleSize ModuleSize 1 Set the moduleSize property for bar cells width. This value will decide the whole barcode image width and height. Its unit of measure is decided by uom.
leftMargin LeftMargin 0 Image left margin. Its unit of measure is decided by uom.
rightMargin RightMargin 0 Image right margin. Its unit of measure is decided by uom.
topMargin TopMargin 0 Image top margin. Its unit of measure is decided by uom.
bottomMargin BottomMargin 0 Image bottom margin. Its unit of measure is decided by uom.






   Copyright 2008 BarcodeLib.com. Provides High Quality Barcode QR Code for Java, Barcode QR Code for JasperReports Library. All rights reserved.