Class BarcodeSettings

java.lang.Object
com.aspose.barcode.barcoderecognition.BarcodeSettings

public class BarcodeSettings extends Object
The main BarCode decoding parameters. Contains parameters which make influence on recognized data.
  • Method Details

    • getChecksumValidation

      public ChecksumValidation getChecksumValidation()
      Enable checksum validation during recognition for 1D and Postal barcodes. Default is treated as Yes for symbologies which must contain checksum, as No where checksum only possible. Checksum never used: Codabar, PatchCode, Pharmacode, DataLogic2of5 Checksum is possible: Code39 Standard/Extended, Standard2of5, Interleaved2of5, ItalianPost25, Matrix2of5, MSI, ItalianPost25, DeutschePostIdentcode, DeutschePostLeitcode, VIN Checksum always used: Rest symbologies Example BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.EAN_13, "1234567890128"); generator.save("c:/test.png"); BarCodeReader reader = new BarCodeReader("c:/test.png", DecodeType.EAN_13); //checksum disabled reader.getBarcodeSettings().setChecksumValidation(ChecksumValidation.OFF); for(BarCodeResult result : reader.readBarCodes()) { System.out.println("BarCode CodeText: " + result.getCodeText()); System.out.println("BarCode Value: " + result.getExtended().getOneD().getValue()); System.out.println("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum()); } BarCodeReader reader = new BarCodeReader(@"c:\test.png", DecodeType.EAN_13); //checksum enabled reader.getBarcodeSettings().setChecksumValidation(ChecksumValidation.ON); for (BarCodeResult result : reader.readBarCodes()) { System.out.println("BarCode CodeText: " + result.CodeText); System.out.println("BarCode Value: " + result.getExtended().getOneD().getValue()); System.out.println("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum()); }
      Returns:
      Enable checksum validation during recognition for 1D and Postal barcodes.
    • setChecksumValidation

      public void setChecksumValidation(ChecksumValidation value)
      Enable checksum validation during recognition for 1D and Postal barcodes. Default is treated as Yes for symbologies which must contain checksum, as No where checksum only possible. Checksum never used: Codabar, PatchCode, Pharmacode, DataLogic2of5 Checksum is possible: Code39 Standard/Extended, Standard2of5, Interleaved2of5, ItalianPost25, Matrix2of5, MSI, ItalianPost25, DeutschePostIdentcode, DeutschePostLeitcode, VIN Checksum always used: Rest symbologies Example BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.EAN_13, "1234567890128"); generator.save("c:/test.png"); BarCodeReader reader = new BarCodeReader("c:/test.png", DecodeType.EAN_13); //checksum disabled reader.getBarcodeSettings().setChecksumValidation(ChecksumValidation.OFF); for(BarCodeResult result : reader.readBarCodes()) { System.out.println("BarCode CodeText: " + result.getCodeText()); System.out.println("BarCode Value: " + result.getExtended().getOneD().getValue()); System.out.println("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum()); } BarCodeReader reader = new BarCodeReader(@"c:\test.png", DecodeType.EAN_13); //checksum enabled reader.getBarcodeSettings().setChecksumValidation(ChecksumValidation.ON); for (BarCodeResult result : reader.readBarCodes()) { System.out.println("BarCode CodeText: " + result.CodeText); System.out.println("BarCode Value: " + result.getExtended().getOneD().getValue()); System.out.println("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum()); }
      Parameters:
      value - Enable checksum validation during recognition for 1D and Postal barcodes.
    • getStripFNC

      public boolean getStripFNC()
      Strip FNC1, FNC2, FNC3 characters from codetext. Default value is false. Example BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.GS_1_CODE_128, "(02)04006664241007(37)1(400)7019590754"); generator.save("c:/test.png"); BarCodeReader reader = new BarCodeReader("c:/test.png", DecodeType.CODE_128); //StripFNC disabled reader.getBarcodeSettings().setStripFNC(false); for(BarCodeResult result : reader.readBarCodes()) { System.our.println("BarCode CodeText: " + result.getCodeText()); } BarCodeReader reader = new BarCodeReader("c:/test.png", DecodeType.CODE_128); //StripFNC enabled reader.getBarcodeSettings().setStripFNC(true); for(BarCodeResult result : reader.readBarCodes()) { System.our.println("BarCode CodeText: " + result.getCodeText()); }
      Returns:
      Strip FNC1, FNC2, FNC3 characters from codetext. Default value is false.
    • setStripFNC

      public void setStripFNC(boolean value)
      Strip FNC1, FNC2, FNC3 characters from codetext. Default value is false. Example BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.GS_1_CODE_128, "(02)04006664241007(37)1(400)7019590754"); generator.save("c:/test.png"); BarCodeReader reader = new BarCodeReader("c:/test.png", DecodeType.CODE_128); //StripFNC disabled reader.getBarcodeSettings().setStripFNC(false); for(BarCodeResult result : reader.readBarCodes()) { System.our.println("BarCode CodeText: " + result.getCodeText()); } BarCodeReader reader = new BarCodeReader("c:/test.png", DecodeType.CODE_128); //StripFNC enabled reader.getBarcodeSettings().setStripFNC(true); for(BarCodeResult result : reader.readBarCodes()) { System.our.println("BarCode CodeText: " + result.getCodeText()); }
      Parameters:
      value - Strip FNC1, FNC2, FNC3 characters from codetext. Default value is false.
    • isOnlyRequestedTypes

      public boolean isOnlyRequestedTypes()
      Returns only barcode types explicitly specified for recognition. When enabled, recognized barcodes of other compatible or equivalent types are filtered out. Default value is false.

      Example:

       // generate EAN13 barcode
       BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.EAN_13, "2383823482894");
       generator.save("test.png");
      
       // recognize only UPCA barcodes (no results, because source is EAN13)
       BarCodeReader reader = new BarCodeReader("test.png", DecodeType.UPCA);
       reader.getBarcodeSettings().setOnlyRequestedTypes(true);
       for (BarCodeResult result : reader.readBarCodes()) {
           System.out.println("BarCode CodeText: " + result.getCodeText());
       }
      
       // recognize compatible types: EAN13, UPCA, ISSN, ISMN, ISBN
       // (EAN13 will be returned as UPCA-equivalent)
       BarCodeReader reader2 = new BarCodeReader("test.png", DecodeType.UPCA);
       reader2.getBarcodeSettings().setOnlyRequestedTypes(false);
       for (BarCodeResult result : reader2.readBarCodes()) {
           System.out.println("BarCode CodeText: " + result.getCodeText());
       }
       
      Returns:
      true if only explicitly requested barcode types are returned; otherwise false
    • setOnlyRequestedTypes

      public void setOnlyRequestedTypes(boolean value)
      Returns only barcode types explicitly specified for recognition. When enabled, recognized barcodes of other compatible or equivalent types are filtered out. Default value is false.

      Example:

       // generate EAN13 barcode
       BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.EAN_13, "2383823482894");
       generator.save("test.png");
      
       // recognize only UPCA barcodes (no results, because source is EAN13)
       BarCodeReader reader = new BarCodeReader("test.png", DecodeType.UPCA);
       reader.getBarcodeSettings().setOnlyRequestedTypes(true);
       for (BarCodeResult result : reader.readBarCodes())
       {
           System.out.println("BarCode CodeText: " + result.getCodeText());
       }
      
       // recognize compatible types: EAN13, UPCA, ISSN, ISMN, ISBN
       // (EAN13 will be returned as UPCA-equivalent)
       BarCodeReader reader2 = new BarCodeReader("test.png", DecodeType.UPCA);
       reader2.getBarcodeSettings().setOnlyRequestedTypes(false);
       for (BarCodeResult result : reader2.readBarCodes()) {
           System.out.println("BarCode CodeText: " + result.getCodeText());
       }
       
    • getDetectEncoding

      public boolean getDetectEncoding()

      The flag which force engine to detect codetext encoding for Unicode codesets. Default value is true.


       This sample shows how to detect text encoding on the fly if DetectEncoding is enabled
       
      
       ByteArrayOutputStream ms = new ByteArrayOutputStream();
       BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR);
       generator.setCodeText("Слово", StandardCharsets.UTF_8);
       generator.save(ms, BarCodeImageFormat.PNG);
      
       BarCodeReader reader = new BarCodeReader(new ByteArrayInputStream(ms.toByteArray()), DecodeType.QR);
       reader.getBarcodeSettings().setDetectEncoding(true);
       for (BarCodeResult result : reader.readBarCodes())
          System.out.println("BarCode CodeText: " + result.getCodeText());
       //detect encoding is disabled
       reader = new BarCodeReader(new ByteArrayInputStream(ms.toByteArray()), DecodeType.QR);
       reader.getBarcodeSettings().setDetectEncoding(false);
       for (BarCodeResult result : reader.readBarCodes())
           System.out.println("BarCode CodeText: " + result.getCodeText());
       

      Value: The flag which force engine to detect codetext encoding for Unicode codesets
    • setDetectEncoding

      public void setDetectEncoding(boolean value)

      The flag which force engine to detect codetext encoding for Unicode codesets. Default value is true.


       This sample shows how to detect text encoding on the fly if DetectEncoding is enabled
       
      
       ByteArrayOutputStream ms = new ByteArrayOutputStream();
       BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.QR);
       generator.setCodeText("Слово", StandardCharsets.UTF_8);
       generator.save(ms, BarCodeImageFormat.PNG);
      
       BarCodeReader reader = new BarCodeReader(new ByteArrayInputStream(ms.toByteArray()), DecodeType.QR);
       reader.getBarcodeSettings().setDetectEncoding(true);
       for (BarCodeResult result : reader.readBarCodes())
          System.out.println("BarCode CodeText: " + result.getCodeText());
       //detect encoding is disabled
       reader = new BarCodeReader(new ByteArrayInputStream(ms.toByteArray()), DecodeType.QR);
       reader.getBarcodeSettings().setDetectEncoding(false);
       for (BarCodeResult result : reader.readBarCodes())
           System.out.println("BarCode CodeText: " + result.getCodeText());
       

      Value: The flag which force engine to detect codetext encoding for Unicode codesets
    • getAustraliaPost

      public AustraliaPostSettings getAustraliaPost()
      Gets AustraliaPost decoding parameters
      Returns:
      The AustraliaPost decoding parameters which make influence on recognized data of AustraliaPost symbology