const fs = require("fs");
const _MwWrapper = require("../_mwbridge/_mw-wrapper.js");
const { MwComplexBarcodeGenerator } = require("../_mwbridge/_mw-bridge.js");
const BaseGenerationParameters = require("../generation/base-generation-parameters.js");
/**
* ComplexBarcodeGenerator for backend complex barcode (e.g. SwissQR) images generation.
* @example
* This sample shows how to create and save a SwissQR image.
* let swissQRCodetext = new SwissQRCodetext(null);
* swissQRCodetext.getBill().setAccount("Account");
* swissQRCodetext.getBill().setBillInformation("BillInformation");
* swissQRCodetext.getBill().setBillInformation("BillInformation");
* swissQRCodetext.getBill().setAmount(1024);
* swissQRCodetext.getBill().getCreditor().setName("Creditor.Name");
* swissQRCodetext.getBill().getCreditor().setAddressLine1("Creditor.AddressLine1");
* swissQRCodetext.getBill().getCreditor().setAddressLine2("Creditor.AddressLine2");
* swissQRCodetext.getBill().getCreditor().setCountryCode("Nl");
* swissQRCodetext.getBill().setUnstructuredMessage("UnstructuredMessage");
* swissQRCodetext.getBill().setReference("Reference");
* swissQRCodetext.getBill().setAlternativeSchemes([new AlternativeScheme("AlternativeSchemeInstruction1"),new AlternativeScheme("AlternativeSchemeInstruction2")]);
* swissQRCodetext.getBill().setDebtor(new Address(null));
* swissQRCodetext.getBill().getDebtor().setName("Debtor.Name");
* swissQRCodetext.getBill().getDebtor().setAddressLine1("Debtor.AddressLine1");
* swissQRCodetext.getBill().getDebtor().setAddressLine2("Debtor.AddressLine2");
* swissQRCodetext.getBill().getDebtor().setCountryCode("Lux");
* let cg = new ComplexBarcodeGenerator(swissQRCodetext);
* let res = cg.generateBarCodeImage(BarcodeImageFormat.PNG);
*/
class ComplexBarcodeGenerator extends _MwWrapper {
parameters;
/**
* Creates an instance of ComplexBarcodeGenerator.
* @param complexCodetext Complex codetext
*/
constructor(complexCodetext)
{
super(new MwComplexBarcodeGenerator(complexCodetext.getJavaClass()));
this._initializeWrapperMembers();
}
_initializeWrapperMembers() {
this.parameters = new BaseGenerationParameters(this.getJavaClass().getParametersSync());
}
/**
* Generation parameters.
*/
getParameters() {
return this.parameters;
}
/**
* Generates complex barcode image under current settings.
* @return Base64 presentation of image.
*/
generateBarCodeImage(format) {
let base64Image = this.getJavaClass().generateBarCodeImageSync(format);
return base64Image;
}
/**
* <p>
* Generates and saves complex barcode image under current settings.
* </p>
* @param filePath Path to save to.
* @param format BarCodeImageFormat(PNG, BMP, JPEG, GIF)
*/
save(filePath, format) {
let image64 = this.generateBarCodeImage(format);
let buff = Buffer.from(image64, 'base64');
fs.writeFileSync(filePath, buff);
}
}
module.exports = ComplexBarcodeGenerator