How to Create a QR Code SVG Using Zxing and JFreeSVG in Java? [Snippet]

DZone 's Guide to

How to Create a QR Code SVG Using Zxing and JFreeSVG in Java? [Snippet]

Create your own QR Code SVG image in Java using the Zxing code generation library.

· Java Zone ·
Free Resource

In this article, we will look at how to use the Zxing QR code generation library and JFreeSVG library to create a QR Code SVG image in Java.

QR Code Generation

The below code creates a java.awt.image.BufferedImage object representing QR Code using Zxing library:

public static BufferedImage getQRCode(String targetUrl, int width, 
    int height) {
    try {
        Hashtable<EncodeHintType, Object> hintMap = new Hashtable<>();

        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        BitMatrix byteMatrix = qrCodeWriter.encode(targetUrl, 
            BarcodeFormat.QR_CODE, width, height, hintMap);
        int CrunchifyWidth = byteMatrix.getWidth();

        BufferedImage image = new BufferedImage(CrunchifyWidth, 
            CrunchifyWidth, BufferedImage.TYPE_INT_RGB);

        Graphics2D graphics = (Graphics2D) image.getGraphics();
        graphics.fillRect(0, 0, CrunchifyWidth, CrunchifyWidth);

        for (int i = 0; i < CrunchifyWidth; i++) {
            for (int j = 0; j < CrunchifyWidth; j++) {
                if (byteMatrix.get(i, j)) {
                    graphics.fillRect(i, j, 1, 1);
        return image;
    } catch (WriterException e) {
        throw new RuntimeException("Error getting QR Code");


Conversion to SVG

The below code snippet converts the java.awt.image.BufferedImage object into SVG using JFreeSVG:

public static String getQRCodeSvg(String targetUrl, int width, 
    int height, boolean withViewBox){
    SVGGraphics2D g2 = new SVGGraphics2D(width, height);
    BufferedImage qrCodeImage = getQRCode(targetUrl, width, height);
    g2.drawImage(qrCodeImage, 0,0, width, height, null);

    ViewBox viewBox = null;
    if ( withViewBox ){
        viewBox = new ViewBox(0,0,width,height);
    return g2.getSVGElement(null, true, viewBox, null, null);

The complete code can be found here.

java, java tutorial, jfreesvg, qr code, qr code svg, snippet, svg, zxing

Published at DZone with permission of Mohamed Sanaulla , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}