下面列出了com.google.zxing.BarcodeFormat# CODE_39 ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public VINParsedResult parse(Result result) {
if (result.getBarcodeFormat() != BarcodeFormat.CODE_39) {
return null;
}
String rawText = result.getText();
rawText = IOQ.matcher(rawText).replaceAll("").trim();
if (!AZ09.matcher(rawText).matches()) {
return null;
}
try {
if (!checkChecksum(rawText)) {
return null;
}
String wmi = rawText.substring(0, 3);
return new VINParsedResult(rawText, wmi, rawText.substring(3, 9), rawText.substring(9, 17),
countryCode(wmi), rawText.substring(3, 8), modelYear(rawText.charAt(9)), rawText.charAt(10),
rawText.substring(11));
} catch (IllegalArgumentException iae) {
return null;
}
}
private static int symbolToFormat(BarcodeFormat symbol) {
if (BarcodeFormat.AZTEC == symbol) {
return 225;
} else if (BarcodeFormat.CODABAR == symbol) {
return 38;
} else if (BarcodeFormat.CODE_128 == symbol) {
return 128;
} else if (BarcodeFormat.CODE_39 == symbol) {
return 39;
} else if (BarcodeFormat.CODE_93 == symbol) {
return 93;
} else if (BarcodeFormat.DATA_MATRIX == symbol) {
return 200;
} else if (BarcodeFormat.EAN_13 == symbol) {
return 13;
} else if (BarcodeFormat.EAN_8 == symbol) {
return 8;
} else if (BarcodeFormat.ITF == symbol) {
return 25;
} else if (BarcodeFormat.MAXICODE == symbol) {
return 94;
} else if (BarcodeFormat.PDF_417 == symbol) {
return 57;
} else if (BarcodeFormat.QR_CODE == symbol) {
return 64;
} else if (BarcodeFormat.RSS_14 == symbol) {
return 34;
} else if (BarcodeFormat.RSS_EXPANDED == symbol) {
return 35;
} else if (BarcodeFormat.UPC_A == symbol) {
return 12;
} else if (BarcodeFormat.UPC_E == symbol) {
return 9;
} else if (BarcodeFormat.UPC_EAN_EXTENSION == symbol) {
return 15;
}
return -1;
}
private static BarcodeFormat formatToSymbol(int format) {
if (225 == format) {
return BarcodeFormat.AZTEC;
} else if (38 == format) {
return BarcodeFormat.CODABAR;
} else if (128 == format) {
return BarcodeFormat.CODE_128;
} else if (39 == format) {
return BarcodeFormat.CODE_39;
} else if (93 == format) {
return BarcodeFormat.CODE_93;
} else if (200 == format) {
return BarcodeFormat.DATA_MATRIX;
} else if (13 == format) {
return BarcodeFormat.EAN_13;
} else if (8 == format) {
return BarcodeFormat.EAN_8;
} else if (25 == format) {
return BarcodeFormat.ITF;
} else if (94 == format) {
return BarcodeFormat.MAXICODE;
} else if (57 == format) {
return BarcodeFormat.PDF_417;
} else if (64 == format) {
return BarcodeFormat.QR_CODE;
} else if (34 == format) {
return BarcodeFormat.RSS_14;
} else if (35 == format) {
return BarcodeFormat.RSS_EXPANDED;
} else if (12 == format) {
return BarcodeFormat.UPC_A;
} else if (9 == format) {
return BarcodeFormat.UPC_E;
} else if (15 == format) {
return BarcodeFormat.UPC_EAN_EXTENSION;
}
return null;
}
@Override
public BitMatrix encode(String contents,
BarcodeFormat format,
int width,
int height,
Map<EncodeHintType,?> hints) throws WriterException {
if (format != BarcodeFormat.CODE_39) {
throw new IllegalArgumentException("Can only encode CODE_39, but got " + format);
}
return super.encode(contents, format, width, height, hints);
}
/**
* Method is used to convert parsed id to BarcodeFormat to create an image of the qr code
* @param id as int
* @return format as BarcodeFormat
*/
public BarcodeFormat idToBarcodeFormat(int id){
BarcodeFormat format;
switch(id){
case 1:
format = BarcodeFormat.CODABAR;
break;
case 2:
format= BarcodeFormat.CODE_128;
break;
case 3:
format = BarcodeFormat.CODE_39;
break;
case 4:
format = BarcodeFormat.EAN_13;
break;
case 5:
format = BarcodeFormat.EAN_8;
break;
case 6:
format = BarcodeFormat.ITF;
break;
case 7:
format = BarcodeFormat.PDF_417;
break;
case 8:
format = BarcodeFormat.UPC_A;
break;
case 9:
format = BarcodeFormat.QR_CODE;
break;
case 10:
format = BarcodeFormat.AZTEC;
break;
default:
format = BarcodeFormat.CODABAR;
break;
}
return format;
}
/**
* Method is used to convert parsed String to BarcodeFormat to create an image of the qr code
* @param stringFormat as String
* @return format as BarcodeFormat
*/
public BarcodeFormat StringToBarcodeFormat(String stringFormat){
BarcodeFormat format;
switch(stringFormat){
case "CODBAR":
format = BarcodeFormat.CODABAR;
break;
case "CODE_128":
format= BarcodeFormat.CODE_128;
break;
case "CODE_39":
format = BarcodeFormat.CODE_39;
break;
case "EAN_13":
format = BarcodeFormat.EAN_13;
break;
case "EAN_8":
format = BarcodeFormat.EAN_8;
break;
case "ITF":
format = BarcodeFormat.ITF;
break;
case "PDF_417":
format = BarcodeFormat.PDF_417;
break;
case "UPC_A":
format = BarcodeFormat.UPC_A;
break;
case "QR_CODE":
format = BarcodeFormat.QR_CODE;
break;
case "AZTEC":
format = BarcodeFormat.AZTEC;
break;
default:
format = BarcodeFormat.CODABAR;
break;
}
return format;
}
@Override
public BitMatrix encode(String contents,
BarcodeFormat format,
int width,
int height,
Map<EncodeHintType,?> hints) throws WriterException {
if (format != BarcodeFormat.CODE_39) {
throw new IllegalArgumentException("Can only encode CODE_39, but got " + format);
}
return super.encode(contents, format, width, height, hints);
}
@Override
public BitMatrix encode(String contents,
BarcodeFormat format,
int width,
int height,
Map<EncodeHintType,?> hints) throws WriterException {
if (format != BarcodeFormat.CODE_39) {
throw new IllegalArgumentException("Can only encode CODE_39, but got " + format);
}
return super.encode(contents, format, width, height, hints);
}
@Override
public BitMatrix encode(String contents,
BarcodeFormat format,
int width,
int height,
Map<EncodeHintType,?> hints) throws WriterException {
if (format != BarcodeFormat.CODE_39) {
throw new IllegalArgumentException("Can only encode CODE_39, but got " + format);
}
return super.encode(contents, format, width, height, hints);
}
@Override
public VINParsedResult parse(Result result) {
if (result.getBarcodeFormat() != BarcodeFormat.CODE_39) {
return null;
}
String rawText = result.getText();
rawText = IOQ.matcher(rawText).replaceAll("").trim();
if (!AZ09.matcher(rawText).matches()) {
return null;
}
try {
if (!checkChecksum(rawText)) {
return null;
}
String wmi = rawText.substring(0, 3);
return new VINParsedResult(rawText,
wmi,
rawText.substring(3, 9),
rawText.substring(9, 17),
countryCode(wmi),
rawText.substring(3, 8),
modelYear(rawText.charAt(9)),
rawText.charAt(10),
rawText.substring(11));
} catch (IllegalArgumentException iae) {
return null;
}
}
@Override
public BitMatrix encode(String contents, BarcodeFormat format, int width, int height, Map<EncodeHintType, ?> hints)
throws WriterException {
if (format != BarcodeFormat.CODE_39) {
throw new IllegalArgumentException("Can only encode CODE_39, but got " + format);
}
return super.encode(contents, format, width, height, hints);
}
@Override
public VINParsedResult parse(Result result) {
if (result.getBarcodeFormat() != BarcodeFormat.CODE_39) {
return null;
}
String rawText = result.getText();
rawText = IOQ.matcher(rawText).replaceAll("").trim();
if (!AZ09.matcher(rawText).matches()) {
return null;
}
try {
if (!checkChecksum(rawText)) {
return null;
}
String wmi = rawText.substring(0, 3);
return new VINParsedResult(rawText,
wmi,
rawText.substring(3, 9),
rawText.substring(9, 17),
countryCode(wmi),
rawText.substring(3, 8),
modelYear(rawText.charAt(9)),
rawText.charAt(10),
rawText.substring(11));
} catch (IllegalArgumentException iae) {
return null;
}
}
@Override
public VINParsedResult parse(Result result) {
if (result.getBarcodeFormat() != BarcodeFormat.CODE_39) {
return null;
}
String rawText = result.getText();
rawText = IOQ.matcher(rawText).replaceAll("").trim();
if (!AZ09.matcher(rawText).matches()) {
return null;
}
try {
if (!checkChecksum(rawText)) {
return null;
}
String wmi = rawText.substring(0, 3);
return new VINParsedResult(rawText,
wmi,
rawText.substring(3, 9),
rawText.substring(9, 17),
countryCode(wmi),
rawText.substring(3, 8),
modelYear(rawText.charAt(9)),
rawText.charAt(10),
rawText.substring(11));
} catch (IllegalArgumentException iae) {
return null;
}
}
@Override
public BitMatrix encode(String contents,
BarcodeFormat format,
int width,
int height,
Map<EncodeHintType,?> hints) throws WriterException {
if (format != BarcodeFormat.CODE_39) {
throw new IllegalArgumentException("Can only encode CODE_39, but got " + format);
}
return super.encode(contents, format, width, height, hints);
}
@Override
public VINParsedResult parse(Result result) {
if (result.getBarcodeFormat() != BarcodeFormat.CODE_39) {
return null;
}
String rawText = result.getText();
rawText = IOQ.matcher(rawText).replaceAll("").trim();
if (!AZ09.matcher(rawText).matches()) {
return null;
}
try {
if (!checkChecksum(rawText)) {
return null;
}
String wmi = rawText.substring(0, 3);
return new VINParsedResult(rawText,
wmi,
rawText.substring(3, 9),
rawText.substring(9, 17),
countryCode(wmi),
rawText.substring(3, 8),
modelYear(rawText.charAt(9)),
rawText.charAt(10),
rawText.substring(11));
} catch (IllegalArgumentException iae) {
return null;
}
}
@Override
public BitMatrix encode(String contents,
BarcodeFormat format,
int width,
int height,
Map<EncodeHintType,?> hints) throws WriterException {
if (format != BarcodeFormat.CODE_39) {
throw new IllegalArgumentException("Can only encode CODE_39, but got " + format);
}
return super.encode(contents, format, width, height, hints);
}
public BitMatrix encode(String s, BarcodeFormat barcodeformat, int i, int j, Map map)
{
if (barcodeformat != BarcodeFormat.CODE_39)
{
throw new IllegalArgumentException((new StringBuilder()).append("Can only encode CODE_39, but got ").append(barcodeformat).toString());
} else
{
return super.encode(s, barcodeformat, i, j, map);
}
}
/**
* Parse barcodes as BarcodeFormat constants.
*
* Supports all iOS codes except [code39mod43, itf14]
*
* Additionally supports [codabar, maxicode, rss14, rssexpanded, upca, upceanextension]
*/
private BarcodeFormat parseBarCodeString(String c) {
if ("aztec".equals(c)) {
return BarcodeFormat.AZTEC;
} else if ("ean13".equals(c)) {
return BarcodeFormat.EAN_13;
} else if ("ean8".equals(c)) {
return BarcodeFormat.EAN_8;
} else if ("qr".equals(c)) {
return BarcodeFormat.QR_CODE;
} else if ("pdf417".equals(c)) {
return BarcodeFormat.PDF_417;
} else if ("upce".equals(c)) {
return BarcodeFormat.UPC_E;
} else if ("datamatrix".equals(c)) {
return BarcodeFormat.DATA_MATRIX;
} else if ("code39".equals(c)) {
return BarcodeFormat.CODE_39;
} else if ("code93".equals(c)) {
return BarcodeFormat.CODE_93;
} else if ("interleaved2of5".equals(c)) {
return BarcodeFormat.ITF;
} else if ("codabar".equals(c)) {
return BarcodeFormat.CODABAR;
} else if ("code128".equals(c)) {
return BarcodeFormat.CODE_128;
} else if ("maxicode".equals(c)) {
return BarcodeFormat.MAXICODE;
} else if ("rss14".equals(c)) {
return BarcodeFormat.RSS_14;
} else if ("rssexpanded".equals(c)) {
return BarcodeFormat.RSS_EXPANDED;
} else if ("upca".equals(c)) {
return BarcodeFormat.UPC_A;
} else if ("upceanextension".equals(c)) {
return BarcodeFormat.UPC_EAN_EXTENSION;
} else {
android.util.Log.v("RCTCamera", "Unsupported code.. [" + c + "]");
return null;
}
}
public Result decodeRow(int i, BitArray bitarray, Map map)
{
int ai[] = new int[9];
int ai1[] = a(bitarray, ai);
int j = bitarray.getNextSet(ai1[1]);
int k = bitarray.getSize();
StringBuilder stringbuilder = new StringBuilder(20);
do
{
recordPattern(bitarray, j, ai);
int l = a(ai);
if (l < 0)
{
throw NotFoundException.getNotFoundInstance();
}
char c1 = a(l);
stringbuilder.append(c1);
int i1 = ai.length;
int j1 = 0;
int k1 = j;
for (; j1 < i1; j1++)
{
k1 += ai[j1];
}
int l1 = bitarray.getNextSet(k1);
if (c1 == '*')
{
stringbuilder.setLength(-1 + stringbuilder.length());
int i2 = 0;
int j2 = ai.length;
for (int k2 = 0; k2 < j2; k2++)
{
i2 += ai[k2];
}
int l2 = l1 - j - i2;
if (l1 != k && l2 >> 1 < i2)
{
throw NotFoundException.getNotFoundInstance();
}
if (e)
{
int i3 = -1 + stringbuilder.length();
int j3 = 0;
for (int k3 = 0; k3 < i3; k3++)
{
j3 += "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%".indexOf(stringbuilder.charAt(k3));
}
if (stringbuilder.charAt(i3) != c[j3 % 43])
{
throw ChecksumException.getChecksumInstance();
}
stringbuilder.setLength(i3);
}
if (stringbuilder.length() == 0)
{
throw NotFoundException.getNotFoundInstance();
}
String s;
float f1;
float f2;
ResultPoint aresultpoint[];
if (f)
{
s = a(stringbuilder);
} else
{
s = stringbuilder.toString();
}
f1 = (float)(ai1[1] + ai1[0]) / 2.0F;
f2 = (float)(j + l1) / 2.0F;
aresultpoint = new ResultPoint[2];
aresultpoint[0] = new ResultPoint(f1, i);
aresultpoint[1] = new ResultPoint(f2, i);
return new Result(s, null, aresultpoint, BarcodeFormat.CODE_39);
}
j = l1;
} while (true);
}
@Override
public InputStream createBarCode(
String serialno, BarcodeTypeConfig barcodeTypeConfig, boolean isPadding)
throws AxelorException {
if (serialno != null && barcodeTypeConfig != null) {
BarcodeFormat barcodeFormat = null;
switch (barcodeTypeConfig.getName()) {
case "AZTEC":
barcodeFormat = BarcodeFormat.AZTEC;
break;
case "CODABAR":
barcodeFormat = BarcodeFormat.CODABAR;
serialno = checkTypeForCodabar(serialno, barcodeFormat);
break;
case "CODE_39":
barcodeFormat = BarcodeFormat.CODE_39;
serialno = checkTypeForCode39(serialno, barcodeFormat);
break;
case "CODE_128":
barcodeFormat = BarcodeFormat.CODE_128;
break;
case "DATA_MATRIX":
barcodeFormat = BarcodeFormat.DATA_MATRIX;
break;
case "EAN_8":
barcodeFormat = BarcodeFormat.EAN_8;
serialno = checkTypeForEan8(serialno, barcodeFormat, isPadding);
break;
case "ITF":
barcodeFormat = BarcodeFormat.ITF;
serialno = checkTypeForItf(serialno, barcodeFormat, isPadding);
break;
case "PDF_417":
barcodeFormat = BarcodeFormat.PDF_417;
serialno = checkTypeForPdf417(serialno, barcodeFormat, isPadding);
break;
case "QR_CODE":
barcodeFormat = BarcodeFormat.QR_CODE;
break;
case "UPC_A":
barcodeFormat = BarcodeFormat.UPC_A;
serialno = checkTypeForUpca(serialno, barcodeFormat, isPadding);
break;
case "EAN_13":
barcodeFormat = BarcodeFormat.EAN_13;
serialno = checkTypeForEan13(serialno, barcodeFormat, isPadding);
break;
default:
throw new AxelorException(
TraceBackRepository.CATEGORY_CONFIGURATION_ERROR,
I18n.get(IExceptionMessage.BARCODE_GENERATOR_9));
}
return generateBarcode(serialno, barcodeTypeConfig, barcodeFormat);
}
return null;
}