Package com.lowagie.text.pdf
Class BarcodePDF417
java.lang.Object
com.lowagie.text.pdf.BarcodePDF417
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.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
protected static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final int
protected static final int
protected static final int
protected static final int
private float
Holds value of property aspectRatio.private int
Holds value of property bitColumns.protected int
protected static final int
protected static final int
protected static final int
private static final int[][]
private int
Holds value of property codeColumns.private int
Holds value of property codeRows.private int[]
Holds value of property codewords.protected int
private static final int[][]
private int
Holds value of property errorLevel.protected static final int
private int
Holds value of property lenCodewords.protected static final int
protected static final int
protected static final int
protected static final int
private String
private int
private int
private int
protected static final int
protected static final int
private static final String
protected static final int
protected static final int
protected static final int
private int
Holds value of property options.private byte[]
Holds value of property outBits.protected static final int
static final int
The error level correction is set automatically according to ISO 15438 recommendations.static final int
The size will be at leastcodeColumns
with a variable number ofcodeRows
.static final int
The size of the barcode will be at leastcodeColumns*codeRows
.static final int
The size will be at leastcodeRows
with a variable number ofcodeColumns
.static final int
One single binary segment is usedstatic final int
Inverts the output bits of the raw bitmap that is normally bit one for black.static final int
Auto-size is made based onaspectRatio
andyHeight
.static final int
The error level correction is set by the user.static final int
Use Macro PDF417 Encodingstatic final int
Notext
interpretation is done and the content ofcodewords
is used directly.protected static final int
protected static final int
protected static final int
private static final String
protected BarcodePDF417.SegmentList
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
private byte[]
Holds value of property text.protected static final int
private float
Holds value of property yHeight. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
append
(int in, int len) private void
protected void
assemble()
private void
basicNumberCompaction
(byte[] input, int start, int length) protected void
basicNumberCompaction
(int start, int length) (package private) void
(package private) void
byteCompaction
(int start, int length) protected void
byteCompaction6
(int start) protected void
calculateErrorCorrection
(int dest) protected boolean
checkSegmentType
(BarcodePDF417.Segment segment, char type) createAwtImage
(Color foreground, Color background) Creates ajava.awt.Image
.protected void
dumpList()
float
Gets the barcode aspect ratio.int
Gets the number of X pixels ofoutBits
.int
Gets the number of barcode data columns.int
Gets the number of Y pixels ofoutBits
.int[]
Gets the codeword array.int
Gets the error level correction used for the barcode.getImage()
Gets anImage
with the barcode.int
Gets the length of the codewords.protected int
int
Gets the options to generate the barcode.byte[]
Gets the raw image bits of the barcode.protected int
getSegmentLength
(BarcodePDF417.Segment segment) byte[]
getText()
Gets the bytes that form the barcode.private static int
getTextTypeAndValue
(byte[] input, int maxLength, int idx) protected int
getTextTypeAndValue
(int maxLength, int idx) float
Gets the Y pixel height relative to X.private void
protected static int
maxPossibleErrorLevel
(int remain) private void
numberCompaction
(byte[] input, int start, int length) protected void
numberCompaction
(int start, int length) protected void
outCodeword
(int codeword) protected void
outCodeword17
(int codeword) protected void
outCodeword18
(int codeword) protected void
protected void
protected void
void
Paints the barcode.void
setAspectRatio
(float aspectRatio) Sets the barcode aspect ratio.void
setCodeColumns
(int codeColumns) Sets the number of barcode data columns.void
setCodeRows
(int codeRows) Sets the number of barcode rows.void
Set the default settings that correspond toPDF417_USE_ASPECT_RATIO
andPDF417_AUTO_ERROR_LEVEL
.void
setErrorLevel
(int errorLevel) Sets the error level correction for the barcode.void
setLenCodewords
(int lenCodewords) Sets the length of the codewords.void
setMacroFileId
(String id) Sets the File ID for macro PDF417 encodingvoid
setMacroSegmentCount
(int cnt) Sets the segment count for macro PDF417 encodingvoid
setMacroSegmentId
(int id) Sets the segment id for macro PDF417 encodingvoid
setOptions
(int options) Sets the options to generate the barcode.void
setText
(byte[] text) Sets the bytes that form the barcode.void
Sets the text that will form the barcode.void
setYHeight
(float yHeight) Sets the Y pixel height relative to X.private void
textCompaction
(byte[] input, int start, int length) protected void
textCompaction
(int start, int length)
-
Field Details
-
PDF417_USE_ASPECT_RATIO
public static final int PDF417_USE_ASPECT_RATIOAuto-size is made based onaspectRatio
andyHeight
.- See Also:
-
PDF417_FIXED_RECTANGLE
public static final int PDF417_FIXED_RECTANGLEThe size of the barcode will be at leastcodeColumns*codeRows
.- See Also:
-
PDF417_FIXED_COLUMNS
public static final int PDF417_FIXED_COLUMNSThe size will be at leastcodeColumns
with a variable number ofcodeRows
.- See Also:
-
PDF417_FIXED_ROWS
public static final int PDF417_FIXED_ROWSThe size will be at leastcodeRows
with a variable number ofcodeColumns
.- See Also:
-
PDF417_AUTO_ERROR_LEVEL
public static final int PDF417_AUTO_ERROR_LEVELThe error level correction is set automatically according to ISO 15438 recommendations.- See Also:
-
PDF417_USE_ERROR_LEVEL
public static final int PDF417_USE_ERROR_LEVELThe error level correction is set by the user. It can be 0 to 8.- See Also:
-
PDF417_FORCE_BINARY
public static final int PDF417_FORCE_BINARYOne single binary segment is used- See Also:
-
PDF417_USE_RAW_CODEWORDS
public static final int PDF417_USE_RAW_CODEWORDSNotext
interpretation is done and the content ofcodewords
is used directly.- See Also:
-
PDF417_INVERT_BITMAP
public static final int PDF417_INVERT_BITMAPInverts the output bits of the raw bitmap that is normally bit one for black. It has only effect for the raw bitmap.- See Also:
-
PDF417_USE_MACRO
public static final int PDF417_USE_MACROUse Macro PDF417 Encoding- See Also:
-
START_PATTERN
protected static final int START_PATTERN- See Also:
-
STOP_PATTERN
protected static final int STOP_PATTERN- See Also:
-
START_CODE_SIZE
protected static final int START_CODE_SIZE- See Also:
-
STOP_SIZE
protected static final int STOP_SIZE- See Also:
-
MOD
protected static final int MOD- See Also:
-
ALPHA
protected static final int ALPHA- See Also:
-
LOWER
protected static final int LOWER- See Also:
-
MIXED
protected static final int MIXED- See Also:
-
PUNCTUATION
protected static final int PUNCTUATION- See Also:
-
ISBYTE
protected static final int ISBYTE- See Also:
-
BYTESHIFT
protected static final int BYTESHIFT- See Also:
-
PL
protected static final int PL- See Also:
-
LL
protected static final int LL- See Also:
-
AS
protected static final int AS- See Also:
-
ML
protected static final int ML- See Also:
-
AL
protected static final int AL- See Also:
-
PS
protected static final int PS- See Also:
-
PAL
protected static final int PAL- See Also:
-
SPACE
protected static final int SPACE- See Also:
-
TEXT_MODE
protected static final int TEXT_MODE- See Also:
-
BYTE_MODE_6
protected static final int BYTE_MODE_6- See Also:
-
BYTE_MODE
protected static final int BYTE_MODE- See Also:
-
NUMERIC_MODE
protected static final int NUMERIC_MODE- See Also:
-
ABSOLUTE_MAX_TEXT_SIZE
protected static final int ABSOLUTE_MAX_TEXT_SIZE- See Also:
-
MAX_DATA_CODEWORDS
protected static final int MAX_DATA_CODEWORDS- See Also:
-
MACRO_SEGMENT_ID
protected static final int MACRO_SEGMENT_ID- See Also:
-
MACRO_LAST_SEGMENT
protected static final int MACRO_LAST_SEGMENT- See Also:
-
MIXED_SET
- See Also:
-
PUNCTUATION_SET
- See Also:
-
CLUSTERS
private static final int[][] CLUSTERS -
ERROR_LEVEL
private static final int[][] ERROR_LEVEL -
bitPtr
protected int bitPtr -
cwPtr
protected int cwPtr -
segmentList
-
macroSegmentCount
private int macroSegmentCount -
macroSegmentId
private int macroSegmentId -
macroFileId
-
macroIndex
private int macroIndex -
outBits
private byte[] outBitsHolds value of property outBits. -
bitColumns
private int bitColumnsHolds value of property bitColumns. -
codeRows
private int codeRowsHolds value of property codeRows. -
codeColumns
private int codeColumnsHolds value of property codeColumns. -
codewords
private int[] codewordsHolds value of property codewords. -
lenCodewords
private int lenCodewordsHolds value of property lenCodewords. -
errorLevel
private int errorLevelHolds value of property errorLevel. -
text
private byte[] textHolds value of property text. -
options
private int optionsHolds value of property options. -
aspectRatio
private float aspectRatioHolds value of property aspectRatio. -
yHeight
private float yHeightHolds value of property yHeight.
-
-
Constructor Details
-
BarcodePDF417
public BarcodePDF417()Creates a newBarcodePDF417
with the default settings.
-
-
Method Details
-
getTextTypeAndValue
private static int getTextTypeAndValue(byte[] input, int maxLength, int idx) -
maxPossibleErrorLevel
protected static int maxPossibleErrorLevel(int remain) -
setMacroSegmentId
public void setMacroSegmentId(int id) Sets the segment id for macro PDF417 encoding- Parameters:
id
- the id (starting at 0)- See Also:
-
setMacroSegmentCount
public void setMacroSegmentCount(int cnt) Sets the segment count for macro PDF417 encoding- Parameters:
cnt
- the number of macro segments- See Also:
-
setMacroFileId
Sets the File ID for macro PDF417 encoding- Parameters:
id
- the file id
-
checkSegmentType
-
getSegmentLength
-
setDefaultParameters
public void setDefaultParameters()Set the default settings that correspond toPDF417_USE_ASPECT_RATIO
andPDF417_AUTO_ERROR_LEVEL
. -
outCodeword17
protected void outCodeword17(int codeword) -
outCodeword18
protected void outCodeword18(int codeword) -
outCodeword
protected void outCodeword(int codeword) -
outStopPattern
protected void outStopPattern() -
outStartPattern
protected void outStartPattern() -
outPaintCode
protected void outPaintCode() -
calculateErrorCorrection
protected void calculateErrorCorrection(int dest) -
getTextTypeAndValue
protected int getTextTypeAndValue(int maxLength, int idx) -
textCompaction
private void textCompaction(byte[] input, int start, int length) -
textCompaction
protected void textCompaction(int start, int length) -
basicNumberCompaction
protected void basicNumberCompaction(int start, int length) -
basicNumberCompaction
private void basicNumberCompaction(byte[] input, int start, int length) -
numberCompaction
private void numberCompaction(byte[] input, int start, int length) -
numberCompaction
protected void numberCompaction(int start, int length) -
byteCompaction6
protected void byteCompaction6(int start) -
byteCompaction
void byteCompaction(int start, int length) -
breakString
void breakString() -
assemble
protected void assemble() -
macroCodes
private void macroCodes() -
append
private void append(int in, int len) -
append
-
dumpList
protected void dumpList() -
getMaxSquare
protected int getMaxSquare() -
paintCode
public void paintCode()Paints the barcode. If no exception was thrown a valid barcode is available. -
getImage
Gets anImage
with the barcode. The image will have to be scaled in the Y direction byyHeight
for the barcode to have the right printing aspect.- Returns:
- the barcode
Image
- Throws:
BadElementException
- on error
-
createAwtImage
Creates ajava.awt.Image
.- Parameters:
foreground
- the color of the barsbackground
- the color of the background- Returns:
- the image
-
getOutBits
public byte[] getOutBits()Gets the raw image bits of the barcode. The image will have to be scaled in the Y direction byyHeight
.- Returns:
- The raw barcode image
-
getBitColumns
public int getBitColumns()Gets the number of X pixels ofoutBits
.- Returns:
- the number of X pixels of
outBits
-
getCodeRows
public int getCodeRows()Gets the number of Y pixels ofoutBits
. It is also the number of rows in the barcode.- Returns:
- the number of Y pixels of
outBits
-
setCodeRows
public void setCodeRows(int codeRows) Sets the number of barcode rows. This number may be changed to keep the barcode valid.- Parameters:
codeRows
- the number of barcode rows
-
getCodeColumns
public int getCodeColumns()Gets the number of barcode data columns.- Returns:
- he number of barcode data columns
-
setCodeColumns
public void setCodeColumns(int codeColumns) Sets the number of barcode data columns. This number may be changed to keep the barcode valid.- Parameters:
codeColumns
- the number of barcode data columns
-
getCodewords
public int[] getCodewords()Gets the codeword array. This array is always 928 elements long. It can be written to if the optionPDF417_USE_RAW_CODEWORDS
is set.- Returns:
- the codeword array
-
getLenCodewords
public int getLenCodewords()Gets the length of the codewords.- Returns:
- the length of the codewords
-
setLenCodewords
public void setLenCodewords(int lenCodewords) Sets the length of the codewords.- Parameters:
lenCodewords
- the length of the codewords
-
getErrorLevel
public int getErrorLevel()Gets the error level correction used for the barcode. It may different from the previously set value.- Returns:
- the error level correction used for the barcode
-
setErrorLevel
public void setErrorLevel(int errorLevel) Sets the error level correction for the barcode.- Parameters:
errorLevel
- the error level correction for the barcode
-
getText
public byte[] getText()Gets the bytes that form the barcode. This bytes should be interpreted in the codepage Cp437.- Returns:
- the bytes that 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.- Parameters:
text
- the bytes that form the barcode
-
setText
Sets the text that will form the barcode. This text is converted to bytes using the encoding Cp437.- Parameters:
s
- the text that will form the barcode
-
getOptions
public int getOptions()Gets the options to generate the barcode.- Returns:
- the options to generate the barcode
-
setOptions
public void setOptions(int options) Sets the options to generate the barcode. This can be all thePDF417_*
constants.- Parameters:
options
- the options to generate the barcode
-
getAspectRatio
public float getAspectRatio()Gets the barcode aspect ratio.- Returns:
- the barcode aspect ratio
-
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.- Parameters:
aspectRatio
- the barcode aspect ratio
-
getYHeight
public float getYHeight()Gets the Y pixel height relative to X.- Returns:
- the Y pixel height relative to X
-
setYHeight
public void setYHeight(float yHeight) Sets the Y pixel height relative to X. It is usually 3.- Parameters:
yHeight
- the Y pixel height relative to X
-