You are on page 1of 3

Nombre: Joe Del Rosario Generador de Cdigo QR en Java Un cdigo QR (quick response code, cdigo de respuesta rpida) es un sistema

para almacenar informacin en una matriz de puntos o un cdigo de barras bidimensional creado por la compaa japonesa Denso Wave, subsidiaria de Toyota, en 1994. Se caracteriza por los tres cuadrados que se encuentran en las esquinas y que permiten detectar la posicin del cdigo al lector. La sigla QR se deriva de la frase inglesa Quick Response (Respuesta Rpida en espaol), pues los creadores Euge Damm y Joaco Retes aspiran a que el cdigo permita que su contenido se lea a alta velocidad. Los cdigos QR son muy comunes en Japn y de hecho son el cdigo bidimensional ms popular en ese pas. Fuente: http://es.wikipedia.org/wiki/C%C3%B3digo_QR Los cdigos QR cada vez son ms populares, su cantidad de informacin (desde 1,817 hasta 7,089 caracteres)y la facilidad para difundirla es algo que simplemente ha cautivado a las empresas e incluso a los particulares. En vista de lo anterior, me he tomado la libertad de escribir 3 artculos sobre la generacin e interpretacin de cdigos QR en Java utilizando NetBeans como entorno de desarrollo. Comencemos con el primero. :: Obtener las libreras necesarias En este primer tutorial vamos a utilizar la librera BarCode. Esta librera es utilizada por reporteadores (como iReport) para generar cdigos de diversos tipos y algoritmos, en este caso la utilizaremos para generar el cdigo QR. Aqu el link para descargar la librera: http://www.barcodelib.com/java_barcode/download.php Nota: Cabe mencionar que es una librera de prueba lo cual conlleva a que aleatoriamente nuestros cdigos generados incluyan la leyenda 'Trial' en color rojo. :: Crear el proyecto en NetBeans Creamos un proyecto nuevo en NetBeans con el nombre de QRGenerator, y una vez creado incluimos la librera barcode.jar (descargada en el paso previo) como biblioteca de nuestro proyecto dando clic derecho en Biblioteca > Agregar Archivo Jar / Carpeta y seleccionndola desde la ubicacin de su descarga. :: Definir el comportamiento Lo primero que vamos a realizar es agregar algunas variables a nivel de clase con el fin de establecer los parmetros con los cuales esteremos creando las imgenes que contendrn los cdigos QR. Para esto iremos a nuestra clase principal (generada por el IDE) y trabajaremos con ella. Debido a que estaremos ejecutando todo el cdigo dentro del mtodo main es necesario que las variables sea estticas.

private static int udm = 0; private static int resolucion = 72; private static float margenIzq = 0.000f; private static float margenDer = 0.000f; private static float margenSup = 0.000f; private static float margenInf = 0.000f; private static int rotacion = 0; private static float tamanoModulo = 5.000f; + La variable uom contendr la unidad de medida que utilizaremos, 0 para pixeles, 1 para centmetros y 2 para pulgadas. + resolucion contiene la resolucin de la imagen en pixeles. + Las variables margenIzq, margenDer, margenSup y margenInf contienen el tamao del margen blanco que rodear al cdigo QR, en este caso 0. + rotacion indica la cantidad en grados a rotar la imagen. + tamanoModulo indica el tamao de la imagen. Una vez que hemos creado y dado un valor a los parmetros agregaremos dentro del mtodo main una nueva instancia de la clase QRCode de la siguiente manera: QRCode codigoQR = new QRCode(); + Al realizar lo anterior debemos importar la clase com.barcodelib.barcode.QRCode. Posteriormente agregaremos en forma de cadena la informacin que deseamos que se incluya dentro del cdigo QR por medio del mtodo setData()... codigoQR.setData("http://monillo007.blogspot.com"); Una vez hecho esto indicamos el tipo de informacin que vamos a manejar con el mtodo setDataMode()... codigoQR.setDataMode(QRCode.MODE_BYTE); + Existen MODE_BYTE (para bytes), MODE_NUMERIC (para nmeros), MODE_ALPHANUMERIC (para nmeros y caracteres variados), MODE_AUTO (automtico), MODE_KANJI (alfabeto kanji) y MODE_CUSTOMER (definido por el usuario), en mi caso estuve probando con todos y el nico que no me gener correctamente el cdigo fue MODE_ALPHANUMERIC por lo que no recomiendo utilizarlo (ms info en la web del autor). Posteriormente indicamos al objeto los parmetros con los cuales va a trabajar... codigoQR.setUOM(udm); codigoQR.setLeftMargin(margenIzq); codigoQR.setResolution(resolucion); codigoQR.setRightMargin(margenDer); codigoQR.setTopMargin(margenSup); codigoQR.setBottomMargin(margenInf);

codigoQR.setRotate(rotacion); codigoQR.setModuleSize(tamanoModulo); Despus generamos el archivo de imagen en el disco duro con la siguiente instruccin: String archivo = System.getProperty("user.home") + "/qrcodeDemo.gif"; codigoQR.renderBarcode(archivo); + El mtodo renderBarcode() nos permite generar el cdigo en una imagen en este caso dentro del directorio del usuario actual y bajo el nombre de qrcodeDemo.gif. Por ltimo utilizamos la clase Desktop para ver la imagen con el visor de imgenes predeterminado del sistema... Desktop d = Desktop.getDesktop(); d.open(new File(archivo)); Para que el cdigo anterior funcione debemos encerrarlo dentro de un try-catch. Si ejecutamos nuestra aplicacin tras realizar los pasos anteriores estaremos generando el cdigo QR dentro de una imagen, para validarlo puedes utilizar alguno de los mltiples servicios web que existen actualmente y/o estar al pendiente de mi siguiente artculo sobre la interpretacin / decodificacin de cdigos QR en Java. Como siempre, puedes descargar las libreras y cdigo necesario para realizar lo explicado en este tutorial desde el siguiente vnculo. Fuente: http://monillo007.blogspot.com/2011/10/generar-codigos-qr-en-java.html Conclusin: Por las investigaciones realizadas he sacado la conclusin que este lenguaje para generar estos cdigos QR es uno de los mas avanzados y que necesita libreras para poder generarlos. Con esta nueva manera ms accesible de ingresar una gran cantidad de informacin en una imagen y ser leda rpidamente por un lector de cdigo QR, los consumidores tienen ms facilidad de enterarse de alguna promocin, o del precio y con las caractersticas de un producto. Adems que las facturas se podrn ir controlando mediante un dispositivo que lea Cdigo QR, y no solo las facturas, tambin pueden controlarse todos los movimientos en su cuenta que haga, para ir llevando la cuenta a diario. Tambin el cdigo QR da la facilidad de poder ingresar a una pgina mediante un dispositivo mvil, tan solo apuntando con la cmara a la imagen de cdigo QR, adems que le da la opcin de guardar esa informacin. Yo pienso que con esta tecnologa va a ver un mayor movimiento en grandes y medianos negocios.