Los códigos QR del inglés Quick Response Code o código de respuesta rápida es un tipo de código para el almacenamiento de datos en una matriz de puntos; en Bolivia por lo general se usan en la Facturación Electrónica.
Dependiendo del lenguaje de programación existen varias alternativas disponibles en la web para el trabajo con códigos QR, para el lenguaje java tenemos la librería ZXing («zebra crossing») el cual es una biblioteca de procesamiento de imágenes de código de barras 1D/2D de código abierto y multiformato implementada en Java, disponible para varios lenguajes de programación.
El siguiente código java utiliza la librería ZXing para leer el código QR de una Factura
import com.google.zxing.BinaryBitmap; import com.google.zxing.MultiFormatReader; import com.google.zxing.NotFoundException; import com.google.zxing.Result; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.common.HybridBinarizer; import java.io.FileInputStream; import java.io.IOException; import javax.imageio.ImageIO; /** * see https://www.jc-mouse.net/ * @author mouse */ public class Main { public static void main(String[] args) { try { BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer( new BufferedImageLuminanceSource( ImageIO.read(new FileInputStream("E:\\factura_bolivia.png"))))); Result qrCodeResult = new MultiFormatReader().decode(binaryBitmap); System.out.println("Codigo QR: " + qrCodeResult.getText()); } catch (IOException | NotFoundException ex) { ex.printStackTrace(); } } }
La Factura (imagen PNG: factura_bolivia.png):
Y tenemos:
enjoy!!!
Jasypt es una biblioteca java que permite agregar capacidades básicas de encriptación a proyectos con el mínimo esfuerzo[...]
Java Network Launching Protocol (JNLP) es una especificación usada por Java Web Start. Esta especificación, permite tene[...]
Common Object Request Broker Architecture (CORBA) es un estándar que permite que diversos componentes de software escrit[...]
El laberinto del terror es un juego en el que haciendo uso del ratón y de tu pulso de borracho debes cruzar distintos la[...]
Un JSpinner es un componente swing de java con una caja de texto y un par de botones que nos permiten incrementar y dec[...]
El tema que trataremos en este post es la implementación de una arquitectura de temas dinámicos (theming) dentro de un p[...]