How to Print QR Codes with a POS Printer

From wizarPOS
Revision as of 03:32, 2 September 2019 by Mahong (talk | contribs)

Get 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();