5.3.1 release (#36)
* UOCL-265: Spanish translation improvements * UOCL-246: Reprint receipt fix * UOCL-246: Reprint receipt fix * UOCL-246: reprint receipt * UOCL-283: Porting ZATCA QR-code! * UOCL-283: Porting ZATCA QR-code! * UOCL-246: reprint receipt * UOCL-274: Top 10 sales rpt fix * UOCL-274: Top 10 sales rpt fix * 5.3.1 release
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
package com.unicenta.pos.util;
|
||||
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
import com.google.zxing.client.j2se.MatrixToImageWriter;
|
||||
import com.google.zxing.common.BitMatrix;
|
||||
import com.google.zxing.qrcode.QRCodeWriter;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Base64;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class QRCodeTest {
|
||||
|
||||
@Test
|
||||
void shouldPrintQRCode() throws Exception {
|
||||
// Name
|
||||
QRObject name = new QRObject(1, "Hugh Stevenson");
|
||||
byte nameTagByte = (byte) name.getTag();
|
||||
byte nameLengthByte = (byte) name.getLength();
|
||||
byte[] nameBytes = {nameTagByte, nameLengthByte};
|
||||
String nameString = new String(nameBytes, StandardCharsets.UTF_8)+name.getValue();
|
||||
|
||||
//vat number
|
||||
QRObject vat = new QRObject(2, "1234567890");
|
||||
byte vatTagByte = (byte) vat.getTag();
|
||||
byte vatLengthByte = (byte) vat.getLength();
|
||||
byte[] vatBytes = {vatTagByte, vatLengthByte};
|
||||
String vatString = new String(vatBytes, StandardCharsets.UTF_8)+vat.getValue();
|
||||
|
||||
// date
|
||||
QRObject date = new QRObject(3, "2021-11-28 09:30:00");
|
||||
byte dateTagByte = (byte) date.getTag();
|
||||
byte dateLengthByte = (byte) date.getLength();
|
||||
byte[] dateBytes = {dateTagByte, dateLengthByte};
|
||||
String dateString = new String(dateBytes, StandardCharsets.UTF_8)+date.getValue();
|
||||
|
||||
// amount
|
||||
QRObject amount = new QRObject(4, "1000.00");
|
||||
byte amountTagByte = (byte) amount.getTag();
|
||||
byte amountLengthByte = (byte) amount.getLength();
|
||||
byte[] amountBytes = {amountTagByte, amountLengthByte};
|
||||
String amountString = new String(amountBytes, StandardCharsets.UTF_8)+amount.getValue();
|
||||
|
||||
|
||||
// Vat amount
|
||||
QRObject vatAmount = new QRObject(5, "150.00");
|
||||
byte vatAmountTag = (byte) vatAmount.getTag();
|
||||
byte vatAmountLengthByte = (byte) vatAmount.getLength();
|
||||
byte[] vatAmountBytes = {vatAmountTag, vatAmountLengthByte};
|
||||
String vatAmountString = new String(vatAmountBytes, StandardCharsets.UTF_8)+vatAmount.getValue();
|
||||
|
||||
|
||||
//barcode
|
||||
String barCodeString = nameString+vatString+dateString+amountString+vatAmountString;
|
||||
String encodedBarcode = Base64.getEncoder().encodeToString(barCodeString.getBytes(StandardCharsets.UTF_8));
|
||||
|
||||
assert encodedBarcode != null;
|
||||
|
||||
QRCodeWriter barcodeWriter = new QRCodeWriter();
|
||||
BitMatrix bitMatrix = barcodeWriter.encode(encodedBarcode, BarcodeFormat.QR_CODE, 200, 200);
|
||||
|
||||
BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix);
|
||||
|
||||
File outputfile = new File("");
|
||||
assert ImageIO.write(bufferedImage, "jpg", outputfile);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user