Package com.google.zxing.oned
Class Code39Reader
- java.lang.Object
-
- com.google.zxing.oned.OneDReader
-
- com.google.zxing.oned.Code39Reader
-
- All Implemented Interfaces:
Reader
public final class Code39Reader extends OneDReader
Decodes Code 39 barcodes. Supports "Full ASCII Code 39" if USE_CODE_39_EXTENDED_MODE is set.
- See Also:
Code93Reader
-
-
Field Summary
Fields Modifier and Type Field 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 Summary
Constructors Constructor 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.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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)
-
Methods inherited from class com.google.zxing.oned.OneDReader
decode, decode, patternMatchVariance, recordPattern, recordPatternInReverse, reset
-
-
-
-
Field Detail
-
ALPHABET_STRING
static final java.lang.String ALPHABET_STRING
- See Also:
- Constant Field Values
-
CHARACTER_ENCODINGS
static final int[] CHARACTER_ENCODINGS
These represent the encodings of characters, as patterns of wide and narrow bars. The 9 least-significant bits of each int correspond to the pattern of wide and narrow, with 1s representing "wide" and 0s representing narrow.
-
ASTERISK_ENCODING
static final int ASTERISK_ENCODING
- See Also:
- Constant Field Values
-
usingCheckDigit
private final boolean usingCheckDigit
-
extendedMode
private final boolean extendedMode
-
decodeRowResult
private final java.lang.StringBuilder decodeRowResult
-
counters
private final int[] counters
-
-
Constructor Detail
-
Code39Reader
public Code39Reader()
Creates a reader that assumes all encoded data is data, and does not treat the final character as a check digit. It will not decoded "extended Code 39" sequences.
-
Code39Reader
public Code39Reader(boolean usingCheckDigit)
Creates a reader that can be configured to check the last character as a check digit. It will not decoded "extended Code 39" sequences.- Parameters:
usingCheckDigit
- if true, treat the last data character as a check digit, not data, and verify that the checksum passes.
-
Code39Reader
public 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.- Parameters:
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.
-
-
Method Detail
-
decodeRow
public Result decodeRow(int rowNumber, BitArray row, java.util.Map<DecodeHintType,?> hints) throws NotFoundException, ChecksumException, FormatException
Description copied from class:OneDReader
Attempts to decode a one-dimensional barcode format given a single row of an image.
- Specified by:
decodeRow
in classOneDReader
- Parameters:
rowNumber
- row number from top of the rowrow
- the black/white pixel data of the rowhints
- decode hints- Returns:
Result
containing encoded string and start/end of barcode- Throws:
NotFoundException
- 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 invalid
-
findAsteriskPattern
private static int[] findAsteriskPattern(BitArray row, int[] counters) throws NotFoundException
- Throws:
NotFoundException
-
toNarrowWidePattern
private static int toNarrowWidePattern(int[] counters)
-
patternToChar
private static char patternToChar(int pattern) throws NotFoundException
- Throws:
NotFoundException
-
decodeExtended
private static java.lang.String decodeExtended(java.lang.CharSequence encoded) throws FormatException
- Throws:
FormatException
-
-