barcodelib.com Home
  Contact Us  |   Purchase  
Google
BarcodeLib.com Home > Products > Barcode for Java > Barcode USPS OneCode 4-State Customer


USPS OneCode 4-State Customer Barcode for Java, J2EE, JasperReports

This Symbology is also known as OneCode 4CB, USPS 4CB, 4-CB, 4-State Customer Barcode, USPS OneCode Solution Barcode

Quick Navigate
OneCode 4-State Customer Barcode (4-CB) is the next generation in the evolution of USPS barcode technology. It does not replace existing barcodes - it offers a more effective alternative. Partnering with the Mailing Industry, the Postal Service developed the 4-CB which increases the amount of information carried on letter and flats mail pieces and allows for expanded tracking capability, creating greater visibility into the mailstream.
4-CB is a height-modulated barcode using four distinct, vertical bar types. It encodes a 31-digit string into 65 vertical bars each representing one of four possible states: full bar, ascender, tracker, and descender.

4-State Barcode Bars
4-CB carries a payload 31 digits comprised of the following elements.
Type Field Digits
Tracking Code Barcode Identifier 2 (2nd digit must be 0?)
Special Services 3
Customer Identifier 6
Sequence Number 9
Routing Code Delivery Point ZIP Code 0, 5, 9, or 11
Table 1 - USPS OneCode SOLUTION Barcode Data Fields
For each of the fields in Table 1, except the Routing Code, leading or trailing zeros shall be provided to achieve the correct size. Spaces and nulls are not acceptable characters for padding. For ZIP Codes, which have one of four lengths, encoding shall provide padding beyond the digits to be encoded. No error detection and correction, such as a checksum with POSTNET or PLANET, shall be included as part of the data fields. The OneCode Barcode Data Fields are described as follows:
  • The Barcode Identifier is assigned by USPS for the type of tracking service. This is two digits, with the second digit in the range of 0-4
  • The Special Services is assigned by USPS for any special services on the mailpiece. The allowable encoding range is 000-999
  • The Customer Identifier is assigned by USPS as a unique identifier for each OneCode SOLUTION customer. The allowable encoding range is 000000?99999
  • The Sequence Number is assigned by the mailer for tracking mailpieces. The allowable encoding range is 000000000-999999999
  • The Delivery Point ZIP Code is assigned by the mailer for routing the mailpiece. This replaces POSTNET for routing the mailpiece to its final delivery point. The length may be 0, 5, 9, or 11 digits. The allowable encoding ranges are no ZIP Code, 00000-99999, 000000000-999999999, and 00000000000-99999999999
Onecode Barcode for Java supports.
  • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

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

1            Barcode barcode = new Barcode(); 
2            barcode.setData("123456789"); 
3            barcode.setType(Barcode.CODE39); 
4            barcode.createBarcodeImage("c:/code39.gif"); 


  • Create a Barcode object (line 1)
  • set Barcode object properties (line 2 - 3)
  • 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/barcode?Data=123456789&Type=CODE39

    • 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/barcode?Data=123456789&Type=CODE39" />

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

    • Create a barcode image in server side

      1            Barcode barcode = new Barcode(); 
      2            barcode.setData("123456789"); 
      3            barcode.setType(Barcode.CODE39); 
      4            barcode.createBarcodeImage("C:/Tools/Tomcat 5.5/webapps/YourWebApp/bimages/code39.gif"); 
      
      
      

    • In your JSP page, you can using IMG tag to display generated image, like <img src="http://YourDomain:Port/YourWebApp/bimages/code39.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.

<image scaleImage="Clip" hAlign="Center"> 
    <reportElement x="50" y="110" width="515" height="120"/> 
    <graphicElement/> 
    <imageExpression class="net.sf.jasperreports.engine.JRRenderable">
<![CDATA[new com.barcodelib.barcode.BarcodeJasperRenderer(BarcodeFactory.createLinear(13, "0470821632"))]]></imageExpression> </image>

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

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

Just call Barcode object method createBarcodeImage, e.g. barcode.createBarcodeImage("c:/code39.gif");
Category Attribute/Method Servlet Attribute Default Value Description
Basic Settings
type Type CODE128
(22)
View all supported barcode types and values. Use the number value for the java bean class and the number or text value for the servlet. For example, the servlet query url should include: Type=CODE128 or Type=22
data Data "" This is the barcode text to be encoded. The type is String.
EAN 8: User should only provide 7 digits, and DO NOT include last digit checksum character.
EAN 13: User should only provide 12 digits, and DO NOT include last digit checksum character.
UPCA: User should only provide 11 digits, and DO NOT include last digit checksum character.
UPCE: User should only provide 6 digits, and DO NOT include last digit checksum character.
sData SData "" Supplement data for ISBN, ISSN, EAN 8, EAN 13, UPCA, UPCE only. The type is String.
addCheckSum AddCheckSum true Valid values are true and false. If barcode type check sum is compulsory or not applied, addCheckSum will not work. Please check each barcode symbologies to get more details.
processTilde ProcessTilde true For barcode Code 128 only. 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.
Codabar
codabarStartChar CodabarStartChar A One of four possible start characters (A, B, C, or D).
codabarStopChar CodabarStopChar A One of four possible stop characters (A, B, C, or D).
UPC-E
UPCENumberSystem UPCENumberSystem 0 Valid values are 0 and 1. The default is 0.
UPC-E may only be used if the number system is 0 or 1. The characters encoded are encoded with odd and even parity from the left-hand columns of the EAN-13 character formats in the table previously provided. The parity used for each character depends on the number system (0 or 1) and the check digit from the original UPC-A barcode.
Barcode Image 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.
barWidth BarWidth 0 Bar cell width, type is float. Its unit of measure is decided by uom.
leftMargin LeftMargin 0 The left margin. Its unit of measure is decided by uom.
rightMargin RightMargin 0 The right margin. Its unit of measure is decided by uom.
topMargin TopMargin 0 The top margin. Its unit of measure is decided by uom.
bottomMargin BottomMargin 0 The bottom margin. Its unit of measure is decided by uom.
showText ShowText true If this value is true (T in servlet), barcode data will be displayed with the barcode. The servlet convert "T" to true and "F" to false.
textFont TextFont Arial The font used to display text in barcode image. To change the font, use the following format:
  Font font = new Font("Arial", Font.BOLD, 13);
  barcode.setTextFont(font);
and to change the font in the servlet, use this format:
 &TextFont=Arial|Bold|13
imageFormat ImageFormat gif Valid values are "gif" and "jpeg". This setting is only valid in Servlet not in bean class.
rotate Rotate 0 If you want to rotate barcode image.
Value can be
0 (Image Bottom Facing Down),
1 (Image Bottom Facing Left),
2 (Image Bottom Facing Up),
3 (Image Bottom Facing Right)






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