QrKit.java 1.2 KB
package com.teplot.common;

import java.io.File;
import java.nio.file.Path;
import java.util.HashMap;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

public class QrKit {

	public QrKit() {
	}

	public static boolean create(String content, int width, int height, String destPath) {
		boolean flag = false;
		
		try {
			String format = "png";
			HashMap<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
			hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
			hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);// 纠错等级L,M,Q,H
			hints.put(EncodeHintType.MARGIN, 2); // 边距
			BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
			Path file = new File(destPath).toPath();
			MatrixToImageWriter.writeToPath(bitMatrix, format, file);
			flag = true;
		} catch (Exception e) {
			System.err.println("createQR()-->" + e.toString());
		}

		return flag;
	}
}