Genera código QR suizo usando Java

Un código QR suizo también se conoce como Swiss QR Bill. Fue desarrollado para automatizar los pagos digitales. Podemos codificar fácilmente toda la información de pago necesaria para activar los pagos en el código QR suizo. El código QR suizo contiene una cruz suiza en el medio. En este artículo, aprenderemos cómo generar un código QR suizo usando Java. Además, también aprenderemos cómo decodificar y leer la información de pago de un código QR suizo mediante programación.

En este artículo se tratarán los siguientes temas:

API de Java para generar y leer código QR suizo

Para generar y leer códigos QR suizos, utilizaremos la API Aspose.BarCode for Java. Proporciona clases SwissQRBill y SwissQRCodetext que ofrecen varias propiedades para trabajar con códigos QR suizos. La clase SwissQRBill permite obtener o configurar datos de facturación y pago, como información de cuenta, monto, moneda y detalles del acreedor. La clase SwissQRCodetext permite la codificación y decodificación de la información de SwissQRBill incrustada en el código QR suizo.

La API proporciona la clase ComplexBarcodeGenerator para generar imágenes de códigos de barras complejos, como códigos QR suizos. La clase BarCodeReader de la API permite leer los códigos de barras del DecodeType especificado. La clase BarCodeResult de la API almacena los datos del código de barras reconocido, como el tipo de código de barras y el texto del código. Además, es una API rica en funciones que le permite generar, escanear y leer una amplia gama de simbologías de códigos de barras.

Descargue el JAR de la API o agregue la siguiente configuración pom.xml en una aplicación Java basada en Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-barcode</artifactId>
    <version>22.5</version>
</dependency>

Genera código QR suizo en Java

Podemos generar un código QR suizo siguiendo los pasos que se detallan a continuación:

  • Cree una instancia de la clase SwissQRCodetext.
  • Establezca varias propiedades de SwissQRBill como Versión, Cuenta, Importe, Moneda, Referencia, etc.
  • Inicialice los objetos de la clase [Address] y configure los detalles del Acreedor y el Deudor.
  • Después de eso, cree una instancia de la clase ComplexBarcodeGenerator con el objeto SwissQRCodetext.
  • Finalmente, llame al método save() para guardar la imagen en la ruta del archivo dada.

El siguiente ejemplo de código muestra cómo generar un código QR suizo usando Java.

// Este ejemplo de código demuestra cómo generar un código QR suizo
// Crear factura QR suiza
SwissQRCodetext swissQRCode = new SwissQRCodetext();
swissQRCode.getBill().setVersion(QrBillStandardVersion.V2_0);
swissQRCode.getBill().setAccount("CH4431999123000889012");
swissQRCode.getBill().setAmount(1000.25);
swissQRCode.getBill().setCurrency("CHF");
swissQRCode.getBill().setReference("210000000003139471430009017");

// Dirección del acreedor
Address creditorAddress = new Address();
creditorAddress.setName("Muster & Söhne");
creditorAddress.setStreet("Musterstrasse");
creditorAddress.setHouseNo("12b");
creditorAddress.setPostalCode("8200");
creditorAddress.setTown("Zürich");
creditorAddress.setCountryCode("CH");
swissQRCode.getBill().setCreditor(creditorAddress);

// Dirección del deudor
Address debtorAddress = new Address();
debtorAddress.setName("Muster AG");
debtorAddress.setStreet("Musterstrasse");
debtorAddress.setHouseNo("1");
debtorAddress.setPostalCode("3030");
debtorAddress.setTown("Bern");
debtorAddress.setCountryCode("CH");
swissQRCode.getBill().setDebtor(debtorAddress);

// Generar factura QR suiza
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Guardar la imagen del código de barras
generator.save("SwissQRBill.png");
Generate Swiss QR Code in Java.

Personalice el código QR suizo en Java

Podemos personalizar la apariencia de un código QR suizo siguiendo los pasos que se detallan a continuación:

  • Cree una instancia de la clase SwissQRCodetext.
  • Establezca varias propiedades de SwissQRBill como Version, Account, Amount, Currency, Reference, etc.
  • Inicialice los objetos de la clase [Address] y configure los detalles del Acreedor y el Deudor.
  • Cree una instancia de la clase ComplexBarcodeGenerator con el objeto SwissQRCodetext.
  • Después de eso, configure varios parámetros del código de barras, como el ancho de la imagen, la codificación, el color de fondo, la resolución, el borde, etc.
  • Finalmente, llama al método save() para generar el código. Toma la ruta del archivo de imagen y BarCodeImageFormat como argumentos.

El siguiente ejemplo de código muestra cómo personalizar un código QR suizo usando Java.

// Este ejemplo de código demuestra cómo personalizar la apariencia de un código QR suizo
// Crear factura QR suiza
SwissQRCodetext swissQRCode = new SwissQRCodetext();
swissQRCode.getBill().setVersion(QrBillStandardVersion.V2_0);
swissQRCode.getBill().setAccount("CH4431999123000889012");
swissQRCode.getBill().setAmount(1000.25);
swissQRCode.getBill().setCurrency("CHF");
swissQRCode.getBill().setReference("210000000003139471430009017");

// Dirección del acreedor
Address creditorAddress = new Address();
creditorAddress.setName("Muster & Söhne");
creditorAddress.setStreet("Musterstrasse");
creditorAddress.setHouseNo("12b");
creditorAddress.setPostalCode("8200");
creditorAddress.setTown("Zürich");
creditorAddress.setCountryCode("CH");
swissQRCode.getBill().setCreditor(creditorAddress);

// Dirección del deudor
Address debtorAddress = new Address();
debtorAddress.setName("Muster AG");
debtorAddress.setStreet("Musterstrasse");
debtorAddress.setHouseNo("1");
debtorAddress.setPostalCode("3030");
debtorAddress.setTown("Bern");
debtorAddress.setCountryCode("CH");
swissQRCode.getBill().setDebtor(debtorAddress);

// Generar factura QR suiza
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Establecer tamaño de imagen
generator.getParameters().getBarcode().getXDimension().setPixels(4);

// Establecer codificación
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.ECI_ENCODING);
generator.getParameters().getBarcode().getQR().setQrECIEncoding(ECIEncodings.UTF8);

// Establecer color de fondo
generator.getParameters().setBackColor(Color.RED);

// Establecer resolución de imagen
generator.getParameters().setResolution(300);

// Establecer borde
generator.getParameters().getBorder().getColor().brighter();
generator.getParameters().getBorder().setDashStyle(BorderDashStyle.SOLID);
generator.getParameters().getBorder().setColor(Color.BLUE);
generator.getParameters().getBorder().setVisible(true);
generator.getParameters().getBorder().getWidth().setPoint(4);

// Guarde la imagen del código de barras como JPEG
generator.save("SwissQRBill.jpg", BarCodeImageFormat.JPEG);
Personalice el código QR suizo en Java

Personalice el código QR suizo en Java

Leer código QR suizo en Java

Podemos leer códigos de barras de una imagen siguiendo los pasos que se detallan a continuación:

  • En primer lugar, cargue una imagen utilizando la clase BarCodeReader.
  • Obtenga resultados de reconocimiento en el objeto de clase BarCodeResult usando el método readBarCodes().
  • Recorra los resultados y decodifique el código QR suizo utilizando el método tryDecodeSwissQR().
  • Finalmente, lea el SwissQRCodetext y muestre los datos.

El siguiente ejemplo de código muestra cómo leer un código QR suizo de una imagen usando Java.

// Este ejemplo de código demuestra cómo detectar, decodificar y leer un código QR suizo
// Reconocer código QR suizo
BarCodeReader reader = new BarCodeReader("SwissQRBill.png", DecodeType.QR);

for (BarCodeResult barcodeResult : reader.readBarCodes())
{
    // Intente decodificar el código QR suizo
    SwissQRCodetext swissResult = ComplexCodetextReader.tryDecodeSwissQR(barcodeResult.getCodeText());
    if (null != swissResult)
    {
        System.out.println("Version: " + swissResult.getBill().getVersion());
        System.out.println("Account: " + swissResult.getBill().getAccount());
        System.out.println("Amount: " + swissResult.getBill().getAmount());
        System.out.println("Currency: " + swissResult.getBill().getCurrency());
        System.out.println("Reference: " + swissResult.getBill().getReference());

        System.out.println("Creditor Name: " + swissResult.getBill().getCreditor().getName());
        System.out.println("Creditor Street: " + swissResult.getBill().getCreditor().getStreet());
        System.out.println("Creditor House: " + swissResult.getBill().getCreditor().getHouseNo());
        System.out.println("Creditor Postal Code: " + swissResult.getBill().getCreditor().getPostalCode());
        System.out.println("Creditor Town: " + swissResult.getBill().getCreditor().getTown());
        System.out.println("Creditor Country: " + swissResult.getBill().getCreditor().getCountryCode());

        System.out.println("Debtor Name: " + swissResult.getBill().getDebtor().getName());
        System.out.println("Debtor Street: " + swissResult.getBill().getDebtor().getStreet());
        System.out.println("Debtor House: " + swissResult.getBill().getDebtor().getHouseNo());
        System.out.println("Debtor Postal Code: " + swissResult.getBill().getDebtor().getPostalCode());
        System.out.println("Debtor Town: " + swissResult.getBill().getDebtor().getTown());
        System.out.println("Debtor Country: " + swissResult.getBill().getDebtor().getCountryCode());
    }
}
Version: V2_0
Account: CH4431999123000889012
Amount: 1000.25
Currency: CHF
Reference: 210000000003139471430009017
Creditor Name: Muster & Söhne
Creditor Street: Musterstrasse
Creditor House: 12b
Creditor Postal Code: 8200
Creditor Town: Zürich
Creditor Country: CH
Debtor Name: Muster AG
Debtor Street: Musterstrasse
Debtor House: 1
Debtor Postal Code: 3030
Debtor Town: Bern
Debtor Country: CH 

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.

Conclusión

En este artículo, hemos aprendido a:

  • generar la imagen de Swiss QR Bill programáticamente;
  • establecer el tamaño y la resolución de la imagen del código QR;
  • establecer el borde y el color de fondo del código QR;
  • detectar un código QR suizo a partir de una imagen;
  • lea los detalles de pago del código QR suizo en Java.

Además, puede obtener más información sobre Aspose.BarCode for Java utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también