const _MwWrapper = require("../_mwbridge/_mw-wrapper.js");
const AustraliaPostSettings = require("./australia-post-settings")
/**
* The main BarCode decoding parameters. Contains parameters which make influence on recognized data.
*/
class BarcodeSettings extends _MwWrapper
{
_australiaPost;
/**
* BarcodeSettings copy constructor
* @param settings The source of the data
*/
constructor(javaclass)
{
super(javaclass);
this._initializeWrapperMembers()
}
_initializeWrapperMembers()
{
this._australiaPost = new AustraliaPostSettings(this.getJavaClass().getAustraliaPostSync());
}
/**
* Enable checksum validation during recognition for 1D and Postal barcodes.<br>
* Default is treated as Yes for symbologies which must contain checksum, as No where checksum only possible.<br>
* Checksum never used: Codabar, PatchCode, Pharmacode, DataLogic2of5<br>
* Checksum is possible: Code39 Standard/Extended, Standard2of5, Interleaved2of5, ItalianPost25, Matrix2of5, MSI, ItalianPost25, DeutschePostIdentcode, DeutschePostLeitcode, VIN<br>
* Checksum always used: Rest symbologies<br>
*
* @example
*
* let generator = new BarcodeGenerator(EncodeTypes.EAN_13, "1234567890128");
* generator.save("c:/test.png", BarcodeImageFormat.PNG);
* let reader = new BarCodeReader("c:/test.png", DecodeType.EAN_13);
* //checksum disabled
* reader.getBarcodeSettings().setChecksumValidation(ChecksumValidation.OFF);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.getCodeText());
* console.log ("BarCode Value: " + result.getExtended().getOneD().getValue());
* console.log ("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum());
* }
*
* @example
* let reader = new BarCodeReader("c:/test.png", DecodeType.EAN_13);
* //checksum enabled
* reader.getBarcodeSettings().setChecksumValidation(ChecksumValidation.ON);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.CodeText);
* console.log ("BarCode Value: " + result.getExtended().getOneD().getValue());
* console.log ("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum());
* }
* @return Enable checksum validation during recognition for 1D and Postal barcodes.
*/
getChecksumValidation()
{
return this.getJavaClass().getChecksumValidationSync();
}
/**
* Enable checksum validation during recognition for 1D and Postal barcodes.<br>
* Default is treated as Yes for symbologies which must contain checksum, as No where checksum only possible.<br>
* Checksum never used: Codabar, PatchCode, Pharmacode, DataLogic2of5<br>
* Checksum is possible: Code39 Standard/Extended, Standard2of5, Interleaved2of5, ItalianPost25, Matrix2of5, MSI, ItalianPost25, DeutschePostIdentcode, DeutschePostLeitcode, VIN<br>
* Checksum always used: Rest symbologies<br>
*
* @example
*
* let generator = new BarcodeGenerator(EncodeTypes.EAN_13, "1234567890128");
* generator.save("c:/test.png", BarcodeImageFormat.PNG);
* let reader = new BarCodeReader("c:/test.png", DecodeType.EAN_13);
* //checksum disabled
* reader.getBarcodeSettings().setChecksumValidation(ChecksumValidation.OFF);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.getCodeText());
* console.log ("BarCode Value: " + result.getExtended().getOneD().getValue());
* console.log ("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum());
* }
*
* @example
* let reader = new BarCodeReader("c:/test.png", DecodeType.EAN_13);
* //checksum enabled
* reader.getBarcodeSettings().setChecksumValidation(ChecksumValidation.ON);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.CodeText);
* console.log ("BarCode Value: " + result.getExtended().getOneD().getValue());
* console.log ("BarCode Checksum: " + result.getExtended().getOneD().getCheckSum());
* }
* @param value Enable checksum validation during recognition for 1D and Postal barcodes.
*/
setChecksumValidation(value)
{
this.getJavaClass().setChecksumValidationSync(value);
}
/**
* Strip FNC1, FNC2, FNC3 characters from codetext. Default value is false.
*
* @example
*
* let generator = new BarcodeGenerator(EncodeTypes.GS_1_CODE_128, "(02)04006664241007(37)1(400)7019590754");
* generator.save("c:/test.png", BarcodeImageFormat.PNG);
* let reader = new BarCodeReader("c:/test.png", DecodeType.CODE_128);
*
* //StripFNC disabled
* reader.getBarcodeSettings().setStripFNC(false);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.getCodeText());
* }
*
* @example
* let reader = new BarCodeReader("c:/test.png", DecodeType.CODE_128);
*
* //StripFNC enabled
* reader.getBarcodeSettings().setStripFNC(true);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.getCodeText());
* }
*
* @return Strip FNC1, FNC2, FNC3 characters from codetext. Default value is false.
*/
getStripFNC()
{
return this.getJavaClass().getStripFNCSync();
}
/**
* Strip FNC1, FNC2, FNC3 characters from codetext. Default value is false.
*
* @example
*
* let generator = new BarcodeGenerator(EncodeTypes.GS_1_CODE_128, "(02)04006664241007(37)1(400)7019590754");
* generator.save("c:/test.png", BarcodeImageFormat.PNG);
* let reader = new BarCodeReader("c:/test.png", DecodeType.CODE_128);
*
* //StripFNC disabled
* reader.getBarcodeSettings().setStripFNC(false);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.getCodeText());
* }
*
* @example
* let reader = new BarCodeReader("c:/test.png", DecodeType.CODE_128);
*
* //StripFNC enabled
* reader.getBarcodeSettings().setStripFNC(true);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.getCodeText());
* }
*
* @param value Strip FNC1, FNC2, FNC3 characters from codetext. Default value is false.
*/
setStripFNC(value)
{
this.getJavaClass().setStripFNCSync(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.
*
* <p>Example:</p>
* <pre>
* // generate EAN13 barcode
* let generator = new BarcodeGenerator(EncodeTypes.EAN_13, "2383823482894");
* generator.save("test.png");
*
* // recognize only UPCA barcodes (no results, because source is EAN13)
* const reader = new BarCodeReader("test.png", null, DecodeType.UPCA);
* reader.getBarcodeSettings().setOnlyRequestedTypes(true);
*
* let results = reader.readBarCodes();
* for (let i = 0; i < results.length; i++)
* {
* console.log("BarCode CodeText: " + results[i].getCodeText());
* }
*
* // recognize compatible types: EAN13, UPCA, ISSN, ISMN, ISBN
* // (EAN13 will be returned as UPCA-equivalent)
* let reader2 = new BarCodeReader("test.png", null, DecodeType.UPCA);
* reader2.getBarcodeSettings().setOnlyRequestedTypes(false);
*
* let results2 = reader2.readBarCodes();
* for (let i = 0; i < results2.length; i++)
* {
* console.log("BarCode CodeText: " + results2[i].getCodeText());
* }
* </pre>
*
* @return true if only explicitly requested barcode types are returned; otherwise false
*/
isOnlyRequestedTypes()
{
return this.getJavaClass().isOnlyRequestedTypesSync();
}
/**
* 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.
*
* <p>Example:</p>
* <pre>
* // generate EAN13 barcode
* let generator = new BarcodeGenerator(EncodeTypes.EAN_13, "2383823482894");
* generator.save("test.png");
*
* // recognize only UPCA barcodes (no results, because source is EAN13)
* const reader = new BarCodeReader("test.png", null, DecodeType.UPCA);
* reader.getBarcodeSettings().setOnlyRequestedTypes(true);
*
* let results = reader.readBarCodes();
* for (let i = 0; i < results.length; i++)
* {
* console.log("BarCode CodeText: " + results[i].getCodeText());
* }
*
* // recognize compatible types: EAN13, UPCA, ISSN, ISMN, ISBN
* // (EAN13 will be returned as UPCA-equivalent)
* let reader2 = new BarCodeReader("test.png", null, DecodeType.UPCA);
* reader2.getBarcodeSettings().setOnlyRequestedTypes(false);
*
* let results2 = reader2.readBarCodes();
* for (let i = 0; i < results2.length; i++)
* {
* console.log("BarCode CodeText: " + results2[i].getCodeText());
* }
* </pre>
*
* @return true if only explicitly requested barcode types are returned; otherwise false
*/
setOnlyRequestedTypes(value)
{
this.getJavaClass().setOnlyRequestedTypesSync(value);
}
/**
* The flag which force engine to detect codetext encoding for Unicode codesets. Default value is true.
*
* @example
*
* let generator = new BarcodeGenerator(EncodeTypes.QR, "Слово"))
* im = generator.generateBarcodeImage(BarcodeImageFormat.PNG);
*
* //detects encoding for Unicode codesets is enabled
* let reader = new BarCodeReader(im, DecodeType.QR);
* reader.getBarcodeSettings().setDetectEncoding(true);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.getCodeText());
* }
*
* @example
* //detect encoding is disabled
* let reader = new BarCodeReader(im, DecodeType.QR);
* reader.getBarcodeSettings().setDetectEncoding(false);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.getCodeText());
* }
*
* @return The flag which force engine to detect codetext encoding for Unicode codesets
*/
getDetectEncoding()
{
return this.getJavaClass().getDetectEncodingSync();
}
/**
* The flag which force engine to detect codetext encoding for Unicode codesets. Default value is true.
*
* @example
*
* let generator = new BarcodeGenerator(EncodeTypes.QR, "Слово"))
* im = generator.generateBarcodeImage(BarcodeImageFormat.PNG);
*
* //detects encoding for Unicode codesets is enabled
* let reader = new BarCodeReader(im, DecodeType.QR);
* reader.getBarcodeSettings().setDetectEncoding(true);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.getCodeText());
* }
*
* @example
* //detect encoding is disabled
* let reader = new BarCodeReader(im, DecodeType.QR);
* reader.getBarcodeSettings().setDetectEncoding(false);
* let results = reader.readBarCodes();
* for(let i = 0; i < results.length; i++)
* {
* let result = results[i];
* console.log ("BarCode CodeText: " + result.getCodeText());
* }
*
* @return The flag which force engine to detect codetext encoding for Unicode codesets
*/
setDetectEncoding(value)
{
this.getJavaClass().setDetectEncodingSync(value);
}
/**
* Gets AustraliaPost decoding parameters
* @return The AustraliaPost decoding parameters which make influence on recognized data of AustraliaPost symbology
*/
getAustraliaPost()
{
return this._australiaPost;
}
}
module.exports = BarcodeSettings