Package com.google.zxing.oned
Class Code39Reader
java.lang.Object
com.google.zxing.oned.OneDReader
com.google.zxing.oned.Code39Reader
- All Implemented Interfaces:
Reader
Decodes Code 39 barcodes. Supports "Full ASCII Code 39" if USE_CODE_39_EXTENDED_MODE is set.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final String
(package private) static final int
(package private) static final int[]
These represent the encodings of characters, as patterns of wide and narrow bars.private final int[]
private final StringBuilder
private final boolean
private final boolean
-
Constructor Summary
ConstructorsConstructorDescriptionCreates 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
Modifier and TypeMethodDescriptionprivate static String
decodeExtended
(CharSequence encoded) decodeRow
(int rowNumber, BitArray row, 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 Details
-
ALPHABET_STRING
- See Also:
-
CHARACTER_ENCODINGS
static final int[] CHARACTER_ENCODINGSThese 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:
-
usingCheckDigit
private final boolean usingCheckDigit -
extendedMode
private final boolean extendedMode -
decodeRowResult
-
counters
private final int[] counters
-
-
Constructor Details
-
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 Details
-
decodeRow
public Result decodeRow(int rowNumber, BitArray row, Map<DecodeHintType, ?> hints) throws NotFoundException, ChecksumException, FormatExceptionDescription 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
- Throws:
NotFoundException
-
toNarrowWidePattern
private static int toNarrowWidePattern(int[] counters) -
patternToChar
- Throws:
NotFoundException
-
decodeExtended
- Throws:
FormatException
-