Browse our Products

Aspose.BarCode for Java 8.1.0 Release Notes

Aspose.BarCode for Java has been updated to version 8.1.0 and we are pleased to announce it. The following is a list of changes in this version of Aspose.BarCode.

Features and Improvements

KeySummaryCategory
BARCODENET-34430Implement new algorithm for recognizing 3D-distorted Aztec codesNew Feature
BARCODENET-36252Fake recognition of 2D barcodes with many errorsEnhancement
BARCODENET-36248Improve recognition speed for AztecEnhancement
BARCODENET-36232Databar Expanded barcode is generated incorrectly for the big lenght (21 or 22 symbols)Enhancement
BARCODENET-36231Add error correction for Mode Message in Aztec codeEnhancement
BARCODENET-36230Correction of moot symbols in a DatabarExpanded barcodeEnhancement
BARCODENET-36229Recognize a datamtrix with black dots aroundEnhancement
BARCODENET-36228Fix order of recognition results for AztecEnhancement
BARCODENET-36223Unable to recognize the barcode from PDFEnhancement
BARCODENET-36211Recognize data matrix with a lot of errors because of low scanner resolutionEnhancement
BARCODENET-36195Program hangs on Aztec codeEnhancement
BARCODENET-34304QREncodeMode Enumeration is missing Binary enumEnhancement
BARCODENET-34430 Implement new algorithm for recognizing  3D-distorted Aztec codes
Code sample:
 BarCodeReader reader = new BarCodeReader("AaBbCc_3D_2.png", DecodeType.AZTEC);

reader.setRecognitionMode(RecognitionMode.MaxQuality);

while (reader.read())

{

    System.out.println(reader.getCodeType() + ": " + reader.getCodeText());

}

Result:

Aztec: AaBbCc

Code sample:

 BarCodeReader reader = new BarCodeReader("manyRotatedAztecs_2.png", DecodeType.AZTEC);

reader.setRecognitionMode(RecognitionMode.MaxQuality);

while (reader.read())

{

   System.out.println(reader.getCodeType() + ": " + reader.getCodeText());

}

Result:

Aztec: ABCDEF

Aztec: ABCDEF

Aztec: 4565345456545456

Aztec: 012345678901234567890123456789

Aztec: AaBbCc

Aztec: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Aztec: AaBbCc

Aztec: AaBbCc

Aztec: www.8qr.de/123aq

Aztec: AaBbCc

BARCODENET-36252 Fake recognition of 2D barcodes with many  errors Code sample:

 BarCodeReader reader = new BarCodeReader("badRs.png", DecodeType.AZTEC);

reader.setRecognitionMode(RecognitionMode.MaxBarCodes);

while (reader.read())

{

   System.out.println(reader.getCodeType() + ": " + reader.getCodeText());

}

Result:

Aztec: AaBbCc

BARCODENET-36248 Improve recognition speed for Aztec Code sample:

 BarCodeReader reader = new BarCodeReader("test1_orig.jpg", DecodeType.AZTEC);

reader.setRecognitionMode(RecognitionMode.MaxBarCodes);

while (reader.read())

{

   System.out.println(reader.getCodeType() + ": " + reader.getCodeText());

}

Result:

Aztec: IwQAANtYAAJDAP8xAHwAQgBBAPtLADAAORr3NgA4Ar00KjHaCho19y4zIm8eUABSAP5FAFoAWQBE/w5OAFQAIPcATQAuCu9TAFQPvVeOUu8aWg5Xe058UrUWSe9aTF5Je9pBSt1CErsOQQFPBvcYAUsWbk5VAEz2g569T2ZM1lcBjr5LXzEOLjfgRtcPLRrtMgAy1xuHr1dba1I2Tt8zY1R7mlkG3lQ/zQND7x5SBkzfAExfMnvuMA7eRLY07QpCSnBe5w8bQUVa2DAD7zWuMg83uDIadD8tESveMCot9gMOg0fbwUH7d0u6BpODVGOHf0FOH9gnBaFzBmO8OLtaDzL4BzKtP5bzGrw59zAfSyMS0LpF8b9Ni0q75zh+3kMONQhzqDbS7DcANBNYoR8eZ4o1Qw2GDzLxO0+7fAA0YkvH8685JixvPzYAsTYX8UQAINgP8BP0DzQfpzMAsHz3cFNoUsCru05IANNr7k8m0wZCpkdBF0uXLSM3OdqXN0F9AzheQzjwvjbdjzJWQ+4DOAAwSwzLs0d8aydmA05C2TO+OQsyW3eCSSSSSoD/AA==f

BARCODENET-36232 Databar Expanded barcode is generated incorrectly  for the big lenght (21 or 22 symbols) Code sample

 BarCodeBuilder builder = new BarCodeBuilder(@"8110106141411234562891101201212085010048000214025610048000310123191000", Symbology.DatabarExpanded);

builder.save("databarExpandedLong.png");

BARCODENET-36230 Correction of moot symbols in a DatabarExpanded  barcode Code sample

 String filename = "Moot-DatabarExpanded.png";

BarCodeReader reader = new BarCodeReader(filename, DecodeType.DATABAR_EXPANDED);

while (reader.read())

{

    System.out.println(reader.getCodeType() + ": " + reader.getCodeText());

}

Result:

 DatabarExpanded: (8110)106141411234562891101201212085010048000214025610048000310123191000

BARCODENET-36229 Recognize a datamtrix with black dots  around Code sample

 String filename = "DataMatrix01_cutted.tif";

BarCodeReader reader = new BarCodeReader(filename, DecodeType.DATA_MATRIX);

while (reader.read())

{

    System.out.println(reader.getCodeType() + ": " + reader.getCodeText());

}

Result:

 DataMatrix: 424D4D415231364252433F379A45D7F4788F76C4C00BC4D31061E63F0B0136CB3C9C385BBC0E85C2B985

BARCODENET-36228 Fix order of recognition results for Aztec Code sample:

 BarCodeReader reader = new BarCodeReader("manyRotatedAztecs_2.png", DecodeType.AZTEC);

reader.setRecognitionMode(RecognitionMode.MaxQuality);

while (reader.read())

{

    System.out.println(reader.getCodeType() + ": " + reader.getCodeText());

}

Result:

Aztec: ABCDEF

Aztec: ABCDEF

Aztec: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Aztec: 4565345456545456

Aztec: 012345678901234567890123456789

Aztec: AaBbCc

Aztec: AaBbCc

Aztec: AaBbCc

Aztec: www.8qr.de/123aq

Aztec: AaBbCc

BARCODENET-36223 Unable to recognize the barcode from PDF  [.Net] Code sample:

 com.aspose.pdf.License licensePdf = new com.aspose.pdf.License();

licensePdf.setLicense("Aspose.Total.Java.lic");

// bind the pdf document

com.aspose.pdf.facades.PdfExtractor pdfExtractor = new com.aspose.pdf.facades.PdfExtractor();

pdfExtractor.bindPdf("CodBar_DOC_2016_06_02_13_00_50_617.pdf");

// set page range for image extraction

pdfExtractor.setStartPage(1);

pdfExtractor.setEndPage(4);

// extract the images

System.out.println("Extracting images.....");

pdfExtractor.extractImage();

// save images to stream in a loop

while (pdfExtractor.hasNextImage())

{

   System.out.println("Getting next image....");

   // save image to stream

   ByteArrayOutputStream outputStreamImageStream = new ByteArrayOutputStream();

   pdfExtractor.getNextImage(outputStreamImageStream);

   InputStream imageStream = new ByteArrayInputStream(outputStreamImageStream.toByteArray());

   System.out.println("Recognizing barcode....");

   // recognize the barcode from the image stream above

   BarCodeReader barcodeReader = new BarCodeReader(imageStream, DecodeType.ALL_SUPPORTED_TYPES);

    barcodeReader.setRecognitionMode(RecognitionMode.ManualHints | RecognitionMode.MaxQuality);

    barcodeReader.setManualHints(ManualHint.ComplexBackground | ManualHint.IncorrectBarcodes | ManualHint.MedianSmoothing);

    barcodeReader.setOrientationHints(RecognitionHints.Orientation.Rotate180);

    while (barcodeReader.read())

    {

        System.out.println("Codetext found: " + barcodeReader.getCodeText() + ", Symbology: " + barcodeReader.getCodeType().toString());

    }

    // close the reader

    barcodeReader.close();

}

Result:

 Codetext found: 40193240260010201111, Symbology: Code128

Codetext found: 40193132350010201111, Symbology: Code128

Codetext found: 40192979040010201111, Symbology: Code128

BARCODENET-36211 Recognize data matrix with a lot of errors because  of low scanner resolution Code sample

 String filename = "Barcode200DPIB.png";

BarCodeReader reader = new BarCodeReader(filename, DecodeType.DATA_MATRIX);

reader.setRecognitionMode(RecognitionMode.MaxQuality);

if (reader.read())

{

    System.out.println(reader.getCodeText());

}

reader.Close();

Result:

 ZZZ#WAS#EF#0203##Unknown#Summary MSS#Summary MSS#Test#6/19/2012#True#N/A

BARCODENET-36195 Program hangs on Aztec code Code sample:

 BarCodeReader reader = new BarCodeReader("badRs.png", DecodeType.AZTEC);

reader.setRecognitionMode(RecognitionMode.MaxQuality);

while (reader.read())

{

    System.out.println(reader.getCodeType() + ": " + reader.getCodeText());

}

Result:

Aztec: AaBbCc