public final class Code39Reader extends OneDReader
Decodes Code 39 barcodes. Supports "Full ASCII Code 39" if USE_CODE_39_EXTENDED_MODE is set.
Code93Reader
Modifier and Type | Field and Description |
---|---|
(package private) static java.lang.String |
ALPHABET_STRING |
(package private) static int |
ASTERISK_ENCODING |
(package private) static int[] |
CHARACTER_ENCODINGS
These represent the encodings of characters, as patterns of wide and narrow bars.
|
private int[] |
counters |
private java.lang.StringBuilder |
decodeRowResult |
private boolean |
extendedMode |
private boolean |
usingCheckDigit |
Constructor and Description |
---|
Code39Reader()
Creates a reader that assumes all encoded data is data, and does not treat the final
character as a check digit.
|
Code39Reader(boolean usingCheckDigit)
Creates a reader that can be configured to check the last character as a check digit.
|
Code39Reader(boolean usingCheckDigit,
boolean extendedMode)
Creates a reader that can be configured to check the last character as a check digit,
or optionally attempt to decode "extended Code 39" sequences that are used to encode
the full ASCII character set.
|
Modifier and Type | Method and Description |
---|---|
private static java.lang.String |
decodeExtended(java.lang.CharSequence encoded) |
Result |
decodeRow(int rowNumber,
BitArray row,
java.util.Map<DecodeHintType,?> hints)
Attempts to decode a one-dimensional barcode format given a single row of
an image.
|
private static int[] |
findAsteriskPattern(BitArray row,
int[] counters) |
private static char |
patternToChar(int pattern) |
private static int |
toNarrowWidePattern(int[] counters) |
decode, decode, patternMatchVariance, recordPattern, recordPatternInReverse, reset
static final java.lang.String ALPHABET_STRING
static final int[] CHARACTER_ENCODINGS
static final int ASTERISK_ENCODING
private final boolean usingCheckDigit
private final boolean extendedMode
private final java.lang.StringBuilder decodeRowResult
private final int[] counters
public Code39Reader()
public Code39Reader(boolean usingCheckDigit)
usingCheckDigit
- if true, treat the last data character as a check digit, not
data, and verify that the checksum passes.public Code39Reader(boolean usingCheckDigit, boolean extendedMode)
usingCheckDigit
- if true, treat the last data character as a check digit, not
data, and verify that the checksum passes.extendedMode
- if true, will attempt to decode extended Code 39 sequences in the
text.public Result decodeRow(int rowNumber, BitArray row, java.util.Map<DecodeHintType,?> hints) throws NotFoundException, ChecksumException, FormatException
OneDReader
Attempts to decode a one-dimensional barcode format given a single row of an image.
decodeRow
in class OneDReader
rowNumber
- row number from top of the rowrow
- the black/white pixel data of the rowhints
- decode hintsResult
containing encoded string and start/end of barcodeNotFoundException
- if no potential barcode is foundChecksumException
- if a potential barcode is found but does not pass its checksumFormatException
- if a potential barcode is found but format is invalidprivate static int[] findAsteriskPattern(BitArray row, int[] counters) throws NotFoundException
NotFoundException
private static int toNarrowWidePattern(int[] counters)
private static char patternToChar(int pattern) throws NotFoundException
NotFoundException
private static java.lang.String decodeExtended(java.lang.CharSequence encoded) throws FormatException
FormatException