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-4)
Service Type Identifier
3
Mailer Identifier
6 or 9
Serial Number
9 or 6
If Mailer Identifier is 6, Serial Number must be 9.
If Mailer Identifier is 9, Serial Number must be 6.
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 Service Type Identifier is assigned by USPS for any special services on the
mailpiece. The allowable encoding range is 000-999
The Mailer Identifier is assigned by USPS as a unique identifier for each
OneCode SOLUTION customer. The allowable encoding range is 000000-99999
The Serial 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
2. Encoding Data Scope
Onecode Barcode for Java supports.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
3. How to Generate Barcode Image in Standalone Java Applications?
The following code illustrates how to create a barcode in a Java class
1 Linear linear = new Linear();
2 linear.setData("34160265194042788110");
3 linear.setType(Linear.ONECODE);
4 linear.renderBarcode("c:/barcode.gif");
Create a Linear object (line 1)
set Linear object properties (line 2 - 3)
save into gif file (line 4)
4. How to Generate Barcode Image in Web Applications?
There are two ways to create barcode images in your Java web applications.
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/linear?Data=34160265194042788110&Type=ONECODE
To create barcode image in your JSP or html page, you can pass the url to IMG tag src value.
For example, <img src="http://YourDomain:Port/barcode/linear?Data=34160265194042788110&Type=ONECODE" />
The second method is similar with the way to generate barcode in Java applications.
Create a barcode image in server side
1 Linear linear = new Linear();
2 linear.setData("34160265194042788110");
3 linear.setType(Linear.ONECODE);
4 linear.renderBarcode("C:/Tools/Tomcat 5.5/webapps/YourWebApp/bimages/barcode.gif");
In your JSP page, you can using IMG tag to display generated image, like <img src="http://YourDomain:Port/YourWebApp/bimages/barcode.gif" />
5. How to Generate Barcode Image in JasperReports?
The following jasper xml content illustrates how to insert a barcode into JasperReports
Just call Linear object method renderBarcode, e.g. linear.renderBarcode("c:/barcode.gif");
8. Barcode Property Settings
Set the type property to Linear.ONECODE Servlet Parameter: "Type".
Set the data property with the value to encode. Type is String.
Servlet Parameter: "Data".
Setting up barcode image size:
Set property uom (Unit of Measure) for properties barWidth, barHeight, leftMargin, rightMargin, topMargin and bottomMargin.
Default is Linear.UOM_PIXEL (0). Valid values are Linear.UOM_PIXEL (0), Linear.UOM_CM (1), Linear.UOM_Inch (2).
Servlet Parameter: "UOM".
Set the X (for barcode module width) and Y (for barcode module height) properties. Both types are float.
Servlet Parameter: "X", "Y".
Set the leftMargin, rightMargin, topMargin and bottomMargin properties, and types are all float.
Servlet Parameter: "LeftMargin", "RightMargin", "TopMargin", "BottomMargin".
Set the barcodeWidth (barcode image width) and barcodeHeight (barcode image height) properties. Both types are float.
Servlet Parameter: "BarcodeWidth", "BarcodeHeight".
Set the resolution property (Value is expressed in DPI - Dots per inch).
Servlet Parameter: "Resolution".
Setting up text style in barcode image:
Set the showText properties. If this value is true, barcode data will be displayed with the barcode.
Servlet Parameter: "ShowText".
Set the textFont property. The font used to display text in barcode image.
Servlet Parameter: "TextFont".
Set bearerBars property, if you want to draw borders around barcode image. Value can be Linear.BEARERBAR_UNSPECIFIED (-1. let library decide whether draw bear bars or not), Linear.BEARERBAR_NONE (0. no bear bars), Linear.BEARERBAR_FRAME (1. top, bottom, left, right borders drawn), Linear.BEARERBAR_TOPBOTTOM (2. only top, bottom's are drawn).
Servlet Parameter: "BearerBars".
Set rotate property, if you want to rotate barcode image.
Value can be 0 (Linear.ANGLE_0),
1 (Linear.ANGLE_90),
2 (Linear.ANGLE_180),
3 (Linear.ANGLE_270)
Servlet Parameter: "Rotate".
addCheckSum property is not applied.
Servlet Parameter: "AddCheckSum".
9. How to Set Generated Barcode Image Size?
To set barcode image width and height, there are two ways to do it.
1) You can set barcode image width and height through properties barcodeWidth and barcodeHeight values, barcode library will render the barcode image for you.
or
2) You can set X (barcode module width) and Y (barcode module height) values, barcode library will calculate the barcodeWidth and barcodeHeight values for you, and render the barcode image.