package com.universalbits.conorganizer.badger.control; 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; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.awt.image.RenderedImage; import java.io.File; import java.io.IOException; import java.util.HashMap; public class BarcodeGenerator { public static void main(String[] args) throws Exception { System.out.println(qrCodePNGBase64("http://animefest.org/", 400)); System.out.println(code128PNGBase64("00110000-00012345", 400, 200)); } @SuppressWarnings("unused") private static void imageToPNGFile(RenderedImage image, File file) throws IOException { ImageIO.write(image, "png", new File("SampleOut-Code128.png")); } public static String qrCodePNGBase64(String text, int size) throws Exception { java.util.Map<EncodeHintType, ErrorCorrectionLevel> encodeHints = new HashMap<>(); encodeHints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M); MultiFormatWriter multiFormatWriter = new MultiFormatWriter(); BitMatrix bitMatrix = multiFormatWriter.encode(text, BarcodeFormat.QR_CODE, size, size, encodeHints); BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix); return Base64Utils.imageToPNGBase64(bufferedImage); } public static String code128PNGBase64(String code, int width, int height) throws Exception { MultiFormatWriter multiFormatWriter = new MultiFormatWriter(); BitMatrix bitMatrix = multiFormatWriter.encode(code, BarcodeFormat.CODE_128, width, height); BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix); return Base64Utils.imageToPNGBase64(bufferedImage); } }