Generates the 2D barcode PDF417. Supports dimensioning auto-sizing, fixed
and variable sizes, automatic and manual error levels, raw codeword input,
codeword size optimization and bitmap inversion. The output can
be a CCITT G4 Image
or a raw bitmap.
ABSOLUTE_MAX_TEXT_SIZE
protected static final int ABSOLUTE_MAX_TEXT_SIZE
AL
protected static final int AL
ALPHA
protected static final int ALPHA
AS
protected static final int AS
BYTESHIFT
protected static final int BYTESHIFT
BYTE_MODE
protected static final int BYTE_MODE
BYTE_MODE_6
protected static final int BYTE_MODE_6
CLUSTERS
(package private) static int[][] CLUSTERS
ERROR_LEVEL
(package private) static int[][] ERROR_LEVEL
ISBYTE
protected static final int ISBYTE
LL
protected static final int LL
LOWER
protected static final int LOWER
MAX_DATA_CODEWORDS
protected static final int MAX_DATA_CODEWORDS
MIXED
protected static final int MIXED
MIXED_SET
(package private) static String MIXED_SET
ML
protected static final int ML
MOD
protected static final int MOD
NUMERIC_MODE
protected static final int NUMERIC_MODE
PAL
protected static final int PAL
PDF417_AUTO_ERROR_LEVEL
public static final int PDF417_AUTO_ERROR_LEVEL
The error level correction is set automatically according
to ISO 15438 recomendations.
PDF417_FIXED_COLUMNS
public static final int PDF417_FIXED_COLUMNS
The size will be at least codeColumns
with a variable number of codeRows
.
PDF417_FIXED_RECTANGLE
public static final int PDF417_FIXED_RECTANGLE
The size of the barcode will be at least codeColumns*codeRows
.
PDF417_FIXED_ROWS
public static final int PDF417_FIXED_ROWS
The size will be at least codeRows
with a variable number of codeColumns
.
PDF417_INVERT_BITMAP
public static final int PDF417_INVERT_BITMAP
Inverts the output bits of the raw bitmap that is normally
bit one for black. It has only effect for the raw bitmap.
PDF417_USE_ASPECT_RATIO
public static final int PDF417_USE_ASPECT_RATIO
Auto-size is made based on aspectRatio
and yHeight
.
PDF417_USE_ERROR_LEVEL
public static final int PDF417_USE_ERROR_LEVEL
The error level correction is set by the user. It can be 0 to 8.
PDF417_USE_RAW_CODEWORDS
public static final int PDF417_USE_RAW_CODEWORDS
No text
interpretation is done and the content of codewords
is used directly.
PL
protected static final int PL
PS
protected static final int PS
PUNCTUATION
protected static final int PUNCTUATION
PUNCTUATION_SET
(package private) static String PUNCTUATION_SET
SPACE
protected static final int SPACE
START_CODE_SIZE
protected static final int START_CODE_SIZE
START_PATTERN
protected static final int START_PATTERN
STOP_PATTERN
protected static final int STOP_PATTERN
STOP_SIZE
protected static final int STOP_SIZE
TEXT_MODE
protected static final int TEXT_MODE
aspectRatio
private float aspectRatio
Holds value of property aspectRatio.
bitColumns
private int bitColumns
Holds value of property bitColumns.
bitPtr
protected int bitPtr
codeColumns
private int codeColumns
Holds value of property codeColumns.
codeRows
private int codeRows
Holds value of property codeRows.
codewords
private int[] codewords
Holds value of property codewords.
errorLevel
private int errorLevel
Holds value of property errorLevel.
lenCodewords
private int lenCodewords
Holds value of property lenCodewords.
options
private int options
Holds value of property options.
outBits
private byte[] outBits
Holds value of property outBits.
text
private byte[] text
Holds value of property text.
yHeight
private float yHeight
Holds value of property yHeight.
assemble
protected void assemble()
basicNumberCompaction
protected void basicNumberCompaction(int start,
int length)
breakString
(package private) void breakString()
byteCompaction
(package private) void byteCompaction(int start,
int length)
byteCompaction6
protected void byteCompaction6(int start)
calculateErrorCorrection
protected void calculateErrorCorrection(int dest)
createAwtImage
public java.awt.Image createAwtImage(Color foreground,
Color background)
Creates a java.awt.Image
.
foreground
- the color of the barsbackground
- the color of the background
dumpList
protected void dumpList()
getAspectRatio
public float getAspectRatio()
Gets the barcode aspect ratio.
getBitColumns
public int getBitColumns()
Gets the number of X pixels of outBits
.
- the number of X pixels of
outBits
getCodeColumns
public int getCodeColumns()
Gets the number of barcode data columns.
- he number of barcode data columns
getCodeRows
public int getCodeRows()
Gets the number of Y pixels of outBits
.
It is also the number of rows in the barcode.
- the number of Y pixels of
outBits
getCodewords
public int[] getCodewords()
Gets the codeword array. This array is always 928 elements long.
It can be writen to if the option PDF417_USE_RAW_CODEWORDS
is set.
getErrorLevel
public int getErrorLevel()
Gets the error level correction used for the barcode. It may different
from the previously set value.
- the error level correction used for the barcode
getImage
public Image getImage()
throws BadElementException
Gets an Image
with the barcode. The image will have to be
scaled in the Y direction by yHeight
for the barcode
to have the right printing aspect.
getLenCodewords
public int getLenCodewords()
Gets the length of the codewords.
- the length of the codewords
getMaxSquare
protected int getMaxSquare()
getOptions
public int getOptions()
Gets the options to generate the barcode.
- the options to generate the barcode
getOutBits
public byte[] getOutBits()
Gets the raw image bits of the barcode. The image will have to
be scaled in the Y direction by yHeight
.
getText
public byte[] getText()
Gets the bytes that form the barcode. This bytes should
be interpreted in the codepage Cp437.
- the bytes that form the barcode
getTextTypeAndValue
protected int getTextTypeAndValue(int maxLength,
int idx)
getYHeight
public float getYHeight()
Gets the Y pixel height relative to X.
- the Y pixel height relative to X
maxPossibleErrorLevel
protected static int maxPossibleErrorLevel(int remain)
numberCompaction
protected void numberCompaction(int start,
int length)
outCodeword
protected void outCodeword(int codeword)
outCodeword17
protected void outCodeword17(int codeword)
outCodeword18
protected void outCodeword18(int codeword)
outPaintCode
protected void outPaintCode()
outStartPattern
protected void outStartPattern()
outStopPattern
protected void outStopPattern()
paintCode
public void paintCode()
Paints the barcode. If no exception was thrown a valid barcode is available.
setAspectRatio
public void setAspectRatio(float aspectRatio)
Sets the barcode aspect ratio. A ratio or 0.5 will make the
barcode width twice as large as the height.
aspectRatio
- the barcode aspect ratio
setCodeColumns
public void setCodeColumns(int codeColumns)
Sets the number of barcode data columns.
This number may be changed to keep the barcode valid.
codeColumns
- the number of barcode data columns
setCodeRows
public void setCodeRows(int codeRows)
Sets the number of barcode rows. This number may be changed
to keep the barcode valid.
codeRows
- the number of barcode rows
setDefaultParameters
public void setDefaultParameters()
Set the default settings that correspond to PDF417_USE_ASPECT_RATIO
and PDF417_AUTO_ERROR_LEVEL
.
setErrorLevel
public void setErrorLevel(int errorLevel)
Sets the error level correction for the barcode.
errorLevel
- the error level correction for the barcode
setLenCodewords
public void setLenCodewords(int lenCodewords)
Sets the length of the codewords.
lenCodewords
- the length of the codewords
setOptions
public void setOptions(int options)
Sets the options to generate the barcode. This can be all
the PDF417_*
constants.
options
- the options to generate the barcode
setText
public void setText(String s)
Sets the text that will form the barcode. This text is converted
to bytes using the encoding Cp437.
s
- the text that will form the barcode
setText
public void setText(byte[] text)
Sets the bytes that form the barcode. This bytes should
be interpreted in the codepage Cp437.
text
- the bytes that form the barcode
setYHeight
public void setYHeight(float yHeight)
Sets the Y pixel height relative to X. It is usually 3.
yHeight
- the Y pixel height relative to X
textCompaction
protected void textCompaction(int start,
int length)