Crear codigo QR en Java


Ahora toca crear un codigo QR usando el lenguaje Java.

Para crear un codigo QR en Java vamos a usar una libreria de terceros.

Lo primero que vamos a hacer es crear un proyecto en java en el NetBeans.

Para agregar la libreria en el Netbeans vamos a buscar el archivo pom.xml del proyecto y vamos a agregar la siguiente dependencia.

    <dependencies>
        
<dependency>  
<groupId>com.google.zxing</groupId>  
<artifactId>javase</artifactId>  
<version>3.3.0</version>  
</dependency>  

    </dependencies>

Con eso se va a descargar la dependencia com.google.zxing que es un conjunto de libbrerias para crear codigos de barra y QR con java, aunque hay implementaciones con otros lenguajes.

Codigo en Java

Ahora vamos a la implementacion de para crear los codigos QR.

Lo primero, agregar todos los imports necesarios.

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

Ahora en la clase Main de nuestro proyecto vamos a crear una funcion llamada generateQRcode y dentro de la funcion main se va a llamar a la funcion.

    public static void main(String[] args) throws WriterException, IOException {
        System.out.println("Creando Qr con Java!");

        // String que se va a agregar en  el codigo QR  
        String str= "https://evilnapsis.com";  
        //Ruta donde se guardara el archivo  
        String path = "MyQrExample.png";  
        // Tipo de codificacion
        String charset = "UTF-8";  

        Map<EncodeHintType, ErrorCorrectionLevel> hashMap = new HashMap<EncodeHintType, ErrorCorrectionLevel>();  
        hashMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);  
        // Funcion para generar el codigo QR que creamos mas abajo
        generateQRcode(str, path, charset, hashMap, 200, 200); // Se genera el codigo QR de 200x200 px   
        System.out.println("Codigo QR creado exitosamente.");  

    }

public static void generateQRcode(String data, String path, String charset, Map map, int h, int w) throws WriterException, IOException  
{  
    // La clase BitMatrix representa una matriz de 2D
BitMatrix matrix = new MultiFormatWriter().encode(new String(data.getBytes(charset), charset), BarcodeFormat.QR_CODE, w, h);  
MatrixToImageWriter.writeToFile(matrix, path.substring(path.lastIndexOf('.') + 1), new File(path));  
} 

Y una vez que ejecutamos el script se va a generar el codigo QR con el nombre de archivo que le pusimos y el contenido que agregamos.

Y listo.

Leave a comment