Java QR Code Library

Generate QR Codes with Java

Java's ZXing (Zebra Crossing) library is the industry standard for barcode and QR code generation. Use it in Spring Boot, Android, or any Java application.

Installation

Add ZXing to your Java project using Maven or Gradle.

Maven
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.5.3</version>
</dependency>
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>javase</artifactId>
    <version>3.5.3</version>
</dependency>
Gradle
implementation 'com.google.zxing:core:3.5.3'
implementation 'com.google.zxing:javase:3.5.3'

Generate QR Codes with ZXing

Code examples using the ZXing library in Java.

Basic QR Code Generation
import com.google.zxing.*;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import java.nio.file.Path;

public class QRGenerator {
    public static void main(String[] args) throws Exception {
        BitMatrix matrix = new MultiFormatWriter().encode(
            "https://qrcode.fun",
            BarcodeFormat.QR_CODE, 300, 300
        );
        MatrixToImageWriter.writeToPath(matrix, "PNG", Path.of("qrcode.png"));
    }
}
QR Code with Custom Colors
import com.google.zxing.*;
import com.google.zxing.common.BitMatrix;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;

public class CustomQR {
    public static void main(String[] args) throws Exception {
        BitMatrix matrix = new MultiFormatWriter().encode(
            "https://qrcode.fun",
            BarcodeFormat.QR_CODE, 300, 300
        );

        BufferedImage image = new BufferedImage(300, 300, BufferedImage.TYPE_INT_RGB);
        int darkColor = 0xFF1A2B3C;
        int lightColor = 0xFFFFFFFF;

        for (int x = 0; x < 300; x++) {
            for (int y = 0; y < 300; y++) {
                image.setRGB(x, y, matrix.get(x, y) ? darkColor : lightColor);
            }
        }
        ImageIO.write(image, "PNG", new File("qrcode_custom.png"));
    }
}
QRCode.fun API

Generate QR Codes via API in Java

Call the QRCode.fun API from Java using HttpClient for styled QR codes.

Java API Integration
import java.net.URI;
import java.net.http.*;

public class QRCodeAPI {
    public static void main(String[] args) throws Exception {
        String json = """
            {
                "data": "https://qrcode.fun",
                "width": 300,
                "height": 300,
                "type": "png",
                "margin": 10,
                "dotsOptions": { "color": "#1A2B3C", "type": "rounded" },
                "cornersSquareOptions": { "color": "#8564C3", "type": "extra-rounded" },
                "backgroundOptions": { "color": "#FFFFFF" }
            }
            """;

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://qrcode.fun/api/generate-qr-styled"))
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(json))
            .build();

        HttpResponse<String> response = client.send(request,
            HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body().substring(0, 100));
    }
}

Live QR Code Preview

Try generating a QR code with Java right now.

QR preview

Native Library vs API

Compare using ZXing directly versus the QRCode.fun API.

FeatureZXing LibraryQRCode.fun API
Setup complexityMaven/Gradle dependency + BufferedImageSingle HTTP request
CustomizationSize, error correction, marginsFull styling: colors, shapes, logos
Offline supportYesRequires internet
MaintenanceUpdate Maven/Gradle dependencyAlways up-to-date
Output formatsPNG, JPG, BMP via ImageIOPNG, SVG

Java QR Code Use Cases

Common scenarios for QR codes in Java applications.

Enterprise Applications

Generate QR codes in Spring Boot APIs for invoices, receipts, and document tracking in enterprise systems.

Android Apps

Use ZXing in Android applications for QR code scanning and generation with camera integration.

Batch Processing

Create thousands of QR codes in batch jobs for product labels, shipping, and inventory management.

PDF Generation

Embed QR codes into PDF documents using iText or Apache PDFBox for reports and tickets.

Frequently Asked Questions

Common questions about generating QR codes with Java.

ZXing (Zebra Crossing) is an open-source barcode processing library for Java. It supports reading and writing QR codes, barcodes, and other 2D matrix codes.

Start generating QR codes with Java

Use our free generator or integrate the API into your Java applications.