How to Print QR Codes with a POS Printer: Difference between revisions

From wizarPOS
Line 1: Line 1:
== Get QR code bitmap ==
== Generate QR code bitmap ==
Change the QR code to a bitmap.
Change the QR code to a bitmap.
Snippet code:
Snippet code:

Revision as of 09:03, 25 March 2020

Generate QR code bitmap

Change the QR code to a bitmap. Snippet code:

    public static Bitmap createQRCode(String str, int widthAndHeight) throws WriterException {  
        Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();  
	hints.put(EncodeHintType.CHARACTER_SET, "utf-8");  
	BitMatrix matrix = new MultiFormatWriter().encode(str, BarcodeFormat.QR_CODE, widthAndHeight, widthAndHeight);  
	int width = matrix.getWidth();  
	int height = matrix.getHeight();  
	int[] pixels = new int[width * height];  
	 
	for (int y = 0; y < height; y++) {  
	    for (int x = 0; x < width; x++) {  
	        if (matrix.get(x, y)) {  
	            pixels[y * width + x] = 0xff000000;  
	        } else {
	            pixels[y * width + x] = 0xffffffff;
	        }
	    }  
        }  
	Bitmap bitmap = Bitmap.createBitmap(width, height,  
	               Bitmap.Config.ARGB_8888);  
	bitmap.setPixels(pixels, 0, width, 0, 0, width, height);  
	return bitmap;  
    }

Print the QR code bitmap

Call print api to print the bitmap. Snippet code flow:

printerDevice =
         (PrinterDevice) POSTerminal.getInstance().getDevice("cloudpos.device.printer");
printerDevice.open();
printerDevice.printBitmap(bitmap);
printerDevice.close();