Gerar código QR suíço usando Java

Um código QR suíço também é conhecido como Swiss QR Bill. Foi desenvolvido para automatizar pagamentos digitais. Podemos codificar facilmente todas as informações de pagamento necessárias para acionar os pagamentos no QR Code suíço. O código QR suíço contém uma cruz suíça no meio. Neste artigo, aprenderemos como gerar um QR Code suíço usando Java. Além disso, também aprenderemos como decodificar e ler informações de pagamento de um código QR suíço de forma programática.

Os seguintes tópicos serão abordados neste artigo:

API Java para gerar e ler código QR suíço

Para gerar e ler códigos QR suíços, usaremos a API Aspose.BarCode for Java. Ele fornece classes SwissQRBill e SwissQRCodetext oferecendo várias propriedades para trabalhar com códigos QR suíços. A classe SwissQRBill permite obter ou configurar dados de cobrança e pagamento, como informações da conta, valor, moeda e detalhes do credor. A classe SwissQRCodetext permite a codificação e decodificação das informações SwissQRBill incorporadas ao código QR suíço.

A API fornece a classe ComplexBarcodeGenerator para gerar imagens de códigos de barras complexos, como códigos QR suíços. A classe BarCodeReader da API permite ler os códigos de barras do DecodeType especificado. A classe BarCodeResult da API armazena os dados de código de barras reconhecidos, como tipo de código de barras e texto do código. Além disso, é uma API rica em recursos que permite gerar, digitalizar e ler uma ampla variedade de simbologias de código de barras.

Faça o download do JAR da API ou adicione a seguinte configuração pom.xml em um aplicativo Java baseado em 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>

Gerar código QR suíço em Java

Podemos gerar um código QR suíço seguindo as etapas abaixo:

  • Crie uma instância da classe SwissQRCodetext.
  • Defina várias propriedades do SwissQRBill, como Versão, Conta, Valor, Moeda, Referência, etc.
  • Inicialize os objetos da classe Endereço e defina os detalhes do Credor e do Devedor.
  • Depois disso, crie uma instância da classe ComplexBarcodeGenerator com o objeto SwissQRCodetext.
  • Por fim, chame o método save() para salvar a imagem no caminho de arquivo fornecido.

A amostra de código a seguir mostra como gerar um código QR suíço usando Java.

// Este exemplo de código demonstra como gerar um código QR suíço
// Criar fatura QR suíça
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");

// Endereço do credor
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);

// Endereço do devedor
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);

// Gerar fatura QR suíça
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Salve a imagem do código de barras
generator.save("SwissQRBill.png");
Generate Swiss QR Code in Java.

Generate Swiss QR Code in Java.

Personalize o código QR suíço em Java

Podemos personalizar a aparência de um código QR suíço seguindo as etapas abaixo:

  • Crie uma instância da classe SwissQRCodetext.
  • Defina várias propriedades do SwissQRBill, como Versão, Conta, Valor, Moeda, Referência, etc.
  • Inicialize os objetos da classe Endereço e defina os detalhes do Credor e do Devedor.
  • Crie uma instância da classe ComplexBarcodeGenerator com o objeto SwissQRCodetext.
  • Depois disso, defina vários parâmetros de código de barras, como largura da imagem, codificação, cor de fundo, resolução, borda, etc.
  • Finalmente, chame o método save() para gerar o código. Leva o caminho do arquivo de imagem e BarCodeImageFormat como argumentos.

A amostra de código a seguir mostra como personalizar um código QR suíço usando Java.

// Este exemplo de código demonstra como personalizar a aparência de um código QR suíço
// Criar fatura QR suíça
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");

// Endereço do credor
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);

// Endereço do devedor
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);

// Gerar fatura QR suíça
ComplexBarcodeGenerator generator = new ComplexBarcodeGenerator(swissQRCode);

// Definir tamanho da imagem
generator.getParameters().getBarcode().getXDimension().setPixels(4);

// Definir codificação
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.ECI_ENCODING);
generator.getParameters().getBarcode().getQR().setQrECIEncoding(ECIEncodings.UTF8);

// Definir cor de fundo
generator.getParameters().setBackColor(Color.RED);

// Definir resolução de imagem
generator.getParameters().setResolution(300);

// Definir borda
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);

// Salve a imagem do código de barras como JPEG
generator.save("SwissQRBill.jpg", BarCodeImageFormat.JPEG);
Personalize o código QR suíço em Java

Personalize o código QR suíço em Java

Leia o código QR suíço em Java

Podemos ler códigos de barras de uma imagem seguindo as etapas abaixo:

  • Primeiramente, carregue uma imagem usando a classe BarCodeReader.
  • Obtenha resultados de reconhecimento no objeto da classe BarCodeResult usando o método readBarCodes().
  • Percorra os resultados e decodifique o código QR suíço usando o método tryDecodeSwissQR().
  • Finalmente, leia o SwissQRCodetext e mostre os dados.

O exemplo de código a seguir mostra como ler um código QR suíço de uma imagem usando Java.

// Este exemplo de código demonstra como detectar, decodificar e ler um código QR suíço
// Reconhecer o código QR suíço
BarCodeReader reader = new BarCodeReader("SwissQRBill.png", DecodeType.QR);

for (BarCodeResult barcodeResult : reader.readBarCodes())
{
    // Tente decodificar o código QR suíço
    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 

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.

Conclusão

Neste artigo, aprendemos como:

  • gerar a imagem Swiss QR Bill programaticamente;
  • definir o tamanho e a resolução da imagem do código QR;
  • defina a borda e a cor do verso do código QR;
  • detectar um código QR suíço de uma imagem;
  • leia os detalhes de pagamento do código QR suíço em Java.

Além disso, você pode aprender mais sobre Aspose.BarCode para API Java usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também