|
Home > Java Barcode Generator
> Java Barcode Generation Guide
> Java PDF-417 Barcodes Generator
Java PDF-417 Barcodes Generator Guide
PDF-417 Bar Code Generation Guide in Java class, J2EE, Jasper Reports, iReport & Eclipse BIRT
- Easily generate PDF-417 barcodes in Java applications
- Compatible with the latest PDF-417 ISO specification [ISO/IEC 15438 (Second edition 2006-06-01)]
- Generate high quality PDF-417 images in JPEG, GIF & PNG formats
- 100% build in Java, compatible with JDK 1.4 and later version
- Generate PDF-417 barcodes on any platforms with a Java virtual machine
- Generate PDF-417 in Jasper Reports & iReport
- Generate PDF-417 in Eclipse BIRT
- Mature Java Barcode Generator library since 2003
- Royalty-free and perpetual developer license
Quick Navigate
1. Java PDF-417 Introduction
PDF-417 is also known as Portable Data File 417, PDF 417, PDF417 Truncated
Compatibility: Barcode for Java library is compatible with the latest PDF-417 ISO specification [ISO/IEC 15438 (Second edition 2006-06-01)]
PDF417, or Portable Data File 417,
is a two-dimensional stacked barcode symbology capable of encoding over a
kilobyte of data per label. It was developed by Symbol Technologies (1989-1992)
and is currently maintained by ANSI / AIM USA.
Large amounts of text and data can be stored securely and inexpensively when
using the PDF417 symbology. The printed symbol consists of several linear rows
of stacked codewords. Each codeword represents 1 of 929 possible values from
one of three different clusters. A different cluster is chosen for each row,
repeating after every three rows.
2. Java PDF-417 Basic Characteristics
PDF417 is a bar code symbology with the following basic characteristics:
- Encodable character set:
- Text Compaction mode permits all printable ASCII characters to be encoded, i.e. values 32 - 126 inclusive in accordance with ISO/IEC 646 (IRV), as well as selected control characters.
- Byte Compaction mode permits all 256 possible 8-bit byte values to be encoded. This
includes all ASCII characters value 0 to 127 inclusive and provides for international character set
support.
- Numeric Compaction mode permits efficient encoding of numeric data strings.
- Up to 811 800 different character sets or data interpretations.
- Various function codewords for control purposes.
- Symbol character structure: (n, k, m) characters of 17 modules (n), 4 bar and 4 space elements (k), with
the largest element 6 modules wide (m).
- Maximum possible number of data characters per symbol (at error correction level 0): 925 data
codewords which can encode:
- Text Compaction mode: 1 850 characters (at 2 data characters per codeword).
- Byte Compaction mode: 1 108 characters (at 1,2 data characters per codeword).
- Numeric Compaction mode: 2 710 characters (at 2,93 data characters per codeword)
At the minimum recommended error correction level, there is a maximum of 863 data codewords which
can encode:
- Text Compaction mode: 1 726 characters (at 2 data characters per codeword).
- Byte Compaction mode: 1 033 characters (at 1,2 data characters per codeword).
- Numeric Compaction mode: 2 528 characters (at 2,93 data characters per codeword).
- Symbol size:
- Number of rows: 3 to 90.
- Number of columns: 1 to 30.
- Width in modules: 90X to 583X including quiet zones.
- Maximum codeword capacity: 928 codewords.
- Maximum data codeword capacity: 925 codewords.
Since the number of rows and the number of columns are selectable, the aspect ratio of a PDF417 symbol
may be varied when printing to suit the spatial requirements of the application.
- Selectable error correction: 2 to 512 codewords per symbol
- Non-data overhead:
- Per row: 73 modules, including quiet zones.
- Per symbol: a minimum of 3 codewords, represented as symbol characters.
- Code type: continuous, multi-row two-dimensional.
- Character self-checking: Yes.
- Bi-directionally decodable: Yes.
3. Java PDF-417 Encoding Data Scope
PDF417 Barcode for Java supports:
- all 128 characters of ASCII
- values 128-255 in accordance with ISO 8859-1. There are referred to as extended ASCII.
4. How to Generate PDF-417 Barcode in Java Class?
The following Java code illustrates how to create a PDF-417 barcode, and output to various formats
1 PDF417 barcode = new PDF417();
2 barcode.setData("PDF 417");
// add more PDF417 property settings here
3 barcode.renderBarcode("c:/barcode.gif");
4 BufferedImage bufferedImage = barcode.renderBarcode();
5 byte[] barcodeBytes = barcode.renderBarcodeToBytes();
6 Graphics2D g = ...
7 Rectangle2D rectangle = ...
8 barcode.renderBarcode(g, rectangle);
9 OutputStream outputStream = ...
10 barcode.renderBarcode(outputStream);
- Create a PDF417 barcode object (line 1)
- set PDF417 object barcode properties (line 2)
- Generate PDF-417 barcode and encode into gif image format (line 3)
- Generate PDF-417 and output to BufferedImage object (line 4)
- Generate PDF-417 in bitmap and output to byte[] (line 5)
- Generate PDF-417 and draw to defined area (Rectangle2D) on Graphics2D (line 6-8)
- Generate PDF-417 and output to OutputStream (line 9-10)
5. How to Generate Barcode PDF-417 Image in Java Web Applications?
There are two methods to create PDF-417 barcode images in your Java web applications.
-
The simplest way is to stream barcode image using our buildin barcode servlet application.
- Download the Barcode for Java Trial Package, and unzip it.
- Under java_barcode_trial package, copy barcode folder to your java servlet container like tomcat.
- Restart tomcat. Now you have installed successfully.
- To test your installation, open your web browser and navigate to
http://YourDomain:Port/barcode/pdf417?Data=123456789
- To create barcode image in your JSP or html page, you need pass the url to IMG tag src value.
For example,
<img src="http://YourDomain:Port/barcode/pdf417?Data=123456789" />
Using this method, it will not generate any barcode images in your server side.
-
The second method is to generate barcode images in your server side
6. How to Generate Barcode PDF-417 Image in Jasper Reports, iReport, Eclipse BIRT?
7. Java PDF-417 Property Settings
-
Set the data property with the value to encode. Type is String.
Servlet URL Parameter: "Data".
-
Set the dataMode property. Default is PDF417.Text.
-
PDF417.AUTO (0): Barcode Library will use the different compaction modes and switching procedures automatically.
-
PDF417.MODE_TEXT (1) (default): It allows encoding all printable ASCII characters, i.e. values
from 32 to 126 inclusive in accordance with ISO/IEC 646, as well as selected
control characters such as TAB (horizontal tab ASCII 9), LF (NL line feed, new
line ASCII 10) and CR (carriage return ASCII 13)
-
PDF417.MODE_BYTE (2): It allows encoding all 256 possible 8-bit byte values. This
includes all ASCII characters value from 0 to 127 inclusive and provides for
international character set support
-
PDF417.MODE_NUMERIC (3): It allows encoding numeric data.
Servlet URL Parameter: "DataMode". Sample: &DataMode=1
-
Set the processTilde property to true, if you want use the tilde character "~" to specify special characters in the encoding data. Default is false.
Format of the tilde:
- ~NNN: is used to represent the ASCII character with the value of NNN. NNN is from 000 - 255.
- ~6NNNNN: is used to represent the Unicode. NNNNN is from 00000 - 65535.
-
~7NNNNNN: is used to specify the Extended Channel Interpretations and NNNNNN is a value between
000000 and 999999.
-
~rp: is used only at the very beginning of the symbol for the reader programming purpose.
Servlet Parameter: "ProcessTilde". Value: "t" (true), "f" (false). Sample: &ProcessTilde=t
-
Set the ecl property. PDF417 Error Correction Level.
Default is PDF417.ECL_2 (2).
Servlet URL Parameter: "ECL". Sample: &ECL=2
-
Set the truncated property to true, if you want truncated PDF417.
Default is false.
truncated PDF417 may be used where space considerations are a primary concern and symbol damage is unlikely.
Servlet URL Parameter: "Truncated". Value: "t" (true), "f" (false). Sample: &Truncated=t
-
Set the column property value.
Number of columns. The value range is from 1 to 30. The default is 5. Increase this value, if your data size is large.
Servlet URL Parameter: "ColumnCount". Sample: &ColumnCount=5
-
Set the row property value.
The number of rows for PDF417. The value range is from 3 to 90. The default is 3.
Servlet URL Parameter: "RowCount". Sample: &RowCount=3
-
Macro PDF 417
PDF 417 can be divided into multiple data areas, also called Macro PDF 417. Conversely, information stored in multiple PDF417 symbols can be reconstructed as single data symbols.
- Set
isMacro property to true, then Macro PDF417 is enabled.
Servlet Parameter: "IsMacro".
- Set
macroSegmentCount property to the number of total symbols which make the sequence.
Servlet Parameter: "MacroSegmentCount".
- Set
macroSegmentIndex property to the position of current symbol in the secuence (Start with 0).
Servlet Parameter: "MacroSegmentIndex".
- Set
macroFileIndex property to be identified to the same file .
Servlet Parameter: "MacroFileIndex".
-
Setting up barcode image size:
-
Set property uom (Unit of Measure) for properties X, Y, 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 URL Parameter: "UOM". Value: 0 (pixel), 1 (cm), 2 (inch). Sample: &UOM=0
-
Set the X (for barcode module width) and barRatio (barcode module height = X * barRatio) properties.
X type is float, default is 1.
barRatio type is int, default is 5.
Servlet URL Parameter: "X", "BarRatio".
-
Set the leftMargin, rightMargin, topMargin and bottomMargin properties, and types are all float.
Default values are 0 for all 4 margin settings.
Servlet URL Parameter: "LeftMargin", "RightMargin", "TopMargin", "BottomMargin". Sample: &LeftMargin=0
-
Set the resolution property (Value is expressed in DPI - Dots per inch).
Default is 72 dpi.
Servlet URL Parameter: "Resolution". Sample: &Resolution=72
-
With rotate property, you can display barcode horizontally or vertically.
Value can be
- 0 (Linear.ANGLE_0),
- 1 (Linear.ANGLE_90),
- 2 (Linear.ANGLE_180),
- 3 (Linear.ANGLE_270)
Default value is 0.
Servlet URL Parameter: "Rotate". Sample: &Rotate=0
8. How to Set Generated PDF-417 Image Size?
All Java Barcode Types/Symbologies
|